com.avaje.ebean.config
Interface ScalarTypeConverter<B,S>

Type Parameters:
B - The value object type.
S - The scalar object type that is used to persist the value object.

public interface ScalarTypeConverter<B,S>

Used to convert between a value object and a known scalar type. The value object is the logical type used in your application and the scalar type is the value used to persist than to the DB.

The Value object should be immutable and scalar (aka not compound) and converts to and from a known scalar type which Ebean will use to persist the value.

This is an easier alternative to implementing the com.avaje.ebean.server.type.ScalarType interface.

Note that Ebean will automatically try to detect Immutable Scalar Value Objects and automatically support them via reflection. This however would not be appropriate when the logical type is different from the type you wish to use for persistence - for example, if the logical type was long and you wanted to use java.sql.Timestamp for persistence. In this case you would want to implement this interface rather than let Ebean automatically support that type via reflection.

If you want to support a Compound Type rather than a Scalar Type refer to CompoundType.

Author:
rbygrave
See Also:
CompoundType, CompoundTypeProperty

Method Summary
 B getNullValue()
          Return the value to represent null.
 S unwrapValue(B beanType)
          Convert the value object into a scalar value that Ebean knows how to persist.
 B wrapValue(S scalarType)
          Convert the scalar type value into the value object.
 

Method Detail

getNullValue

B getNullValue()
Return the value to represent null. Typically this is actually null but for scala.Option and similar type converters this actually returns an instance representing "None".


wrapValue

B wrapValue(S scalarType)
Convert the scalar type value into the value object.

This typically occurs when Ebean reads the value from a resultSet or other data source.

Parameters:
scalarType - the value from the data source

unwrapValue

S unwrapValue(B beanType)
Convert the value object into a scalar value that Ebean knows how to persist.

This typically occurs when Ebean is persisting the value object to the data store.

Parameters:
beanType - the value object


Copyright © 2010. All Rights Reserved.