Open Source Repository

Home /hibernate/hibernate-3.2.4.ga | Repository Home


org/hibernate/type/CharacterArrayType.java
//$Id: $
package org.hibernate.type;

import org.hibernate.HibernateException;

/**
 * Bridge Character[] and VARCHAR
 @author Emmanuel Bernard
 */
public class CharacterArrayType extends AbstractCharArrayType {
  protected Object toExternalFormat(char[] chars) {
    if (chars == nullreturn null;
    Character[] characters = new Character[chars.length];
    for (int i = ; i < chars.length ; i++) {
      characters[inew Characterchars[i] );
    }
    return characters;
  }

  protected char[] toInternalFormat(Object value) {
    if (value == nullreturn null;
    Character[] characters = (Character[]) value;
    char[] chars = new char[characters.length];
    for (int i = ; i < characters.length ; i++) {
      if (characters[i== null)
        throw new HibernateException("Unable to store an Character[] when one of its element is null");
      chars[i= characters[i].charValue();
    }
    return chars;
  }

  public Class getReturnedClass() {
    return Character[].class;
  }

  public String getName() { return "wrapper-characters"}
}