Open Source Repository

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



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

import org.hibernate.HibernateException;

/**
 @author Emmanuel Bernard
 */
public class WrapperBinaryType extends AbstractBynaryType {
  protected Object toExternalFormat(byte[] bytes) {
    if (bytes == nullreturn null;
    int length = bytes.length;
    Byte[] result = new Byte[length];
    for int index = 0; index < length ; index++ ) {
      result[indexnew Bytebytes[index] );
    }
    return result;
  }

  protected byte[] toInternalFormat(Object val) {
    if (val == nullreturn null;
    Byte[] bytes = (Byte[]) val;
    int length = bytes.length;
    byte[] result = new byte[length];
    for int i = 0; i < length ; i++ ) {
      if (bytes[i== null)
        throw new HibernateException("Unable to store an Byte[] when one of its element is null");
      result[i= bytes[i].byteValue();
    }
    return result;
  }

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

  public String getName() {
    //TODO find a decent name before documenting
    return "wrapper-binary";
  }
}