org.apache.openjpa.jdbc.meta.strats
Class ElementEmbedValueHandler

java.lang.Object
  extended by org.apache.openjpa.jdbc.meta.strats.AbstractValueHandler
      extended by org.apache.openjpa.jdbc.meta.strats.EmbedValueHandler
          extended by org.apache.openjpa.jdbc.meta.strats.ElementEmbedValueHandler
All Implemented Interfaces:
Serializable, RelationId, ValueHandler

public class ElementEmbedValueHandler
extends EmbedValueHandler
implements RelationId

Handler for embedded objects as elements of a collection or map. For embedded objects as fields, use the more powerful EmbedFieldStrategy.

Since:
0.4.0, 1.1.0
Author:
Abe White
See Also:
Serialized Form

Constructor Summary
ElementEmbedValueHandler()
           
 
Method Summary
 Object getResultArgument(ValueMapping vm)
          Return the argument to pass to the result set when loading data via Result.getObject(java.lang.Object, int, java.lang.Object), or null if none.
 Column[] map(ValueMapping vm, String name, ColumnIO io, boolean adapt)
          Map the given value and return all mapped columns, or simply return an array of unmapped default columns.
 boolean objectValueRequiresLoad(ValueMapping vm)
          Return whether this handler potentially must load extra data to extract the object value from its datastore representation.
 Object toDataStoreValue(ValueMapping vm, Object val, JDBCStore store)
          Translate the given value to its datastore equivalent.
 Object toObjectValue(ValueMapping vm, Object val, OpenJPAStateManager sm, JDBCStore store, JDBCFetchConfiguration fetch)
          Translate the given datastore value into its Java equivalent.
 Object toRelationDataStoreValue(OpenJPAStateManager sm, Column col)
          Return the serialized value for the given related object, now that its id has been assigned.
 
Methods inherited from class org.apache.openjpa.jdbc.meta.strats.EmbedValueHandler
map, toDataStoreValue, toObjectValue
 
Methods inherited from class org.apache.openjpa.jdbc.meta.strats.AbstractValueHandler
isVersionable, toObjectValue
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ElementEmbedValueHandler

public ElementEmbedValueHandler()
Method Detail

map

public Column[] map(ValueMapping vm,
                    String name,
                    ColumnIO io,
                    boolean adapt)
Description copied from interface: ValueHandler
Map the given value and return all mapped columns, or simply return an array of unmapped default columns. The columns should have at least their Name and JavaType properties set.

Specified by:
map in interface ValueHandler
name - use as a base to form column name(s); the column names of unmapped columns will automatically be made to fit database limitations
io - I/O information about mapped columns; you do not have to set this information if returning templates
adapt - whether to adapt the mapping or schema

objectValueRequiresLoad

public boolean objectValueRequiresLoad(ValueMapping vm)
Description copied from interface: ValueHandler
Return whether this handler potentially must load extra data to extract the object value from its datastore representation.

Specified by:
objectValueRequiresLoad in interface ValueHandler
Overrides:
objectValueRequiresLoad in class AbstractValueHandler

getResultArgument

public Object getResultArgument(ValueMapping vm)
Description copied from interface: ValueHandler
Return the argument to pass to the result set when loading data via Result.getObject(java.lang.Object, int, java.lang.Object), or null if none. If this value occupies multiple columns, return an array with one element per column. You may return null if all array elements would be null.

Specified by:
getResultArgument in interface ValueHandler
Overrides:
getResultArgument in class AbstractValueHandler

toDataStoreValue

public Object toDataStoreValue(ValueMapping vm,
                               Object val,
                               JDBCStore store)
Description copied from interface: ValueHandler
Translate the given value to its datastore equivalent. If this value occupies multiple columns, return an object array with one element per column. For relation id columns, return the state manager the column depends on.

Specified by:
toDataStoreValue in interface ValueHandler
Overrides:
toDataStoreValue in class AbstractValueHandler

toObjectValue

public Object toObjectValue(ValueMapping vm,
                            Object val,
                            OpenJPAStateManager sm,
                            JDBCStore store,
                            JDBCFetchConfiguration fetch)
                     throws SQLException
Description copied from interface: ValueHandler
Translate the given datastore value into its Java equivalent. If the value occupies multiple columns, the given object will be an object array with one entry per column. This method is only called if ValueHandler.objectValueRequiresLoad(org.apache.openjpa.jdbc.meta.ValueMapping) returns true.

Specified by:
toObjectValue in interface ValueHandler
Overrides:
toObjectValue in class AbstractValueHandler
sm - the state manager that owns the value; may be null if loading a projection
Throws:
SQLException

toRelationDataStoreValue

public Object toRelationDataStoreValue(OpenJPAStateManager sm,
                                       Column col)
Description copied from interface: RelationId
Return the serialized value for the given related object, now that its id has been assigned.

Specified by:
toRelationDataStoreValue in interface RelationId


Copyright © 2006-2008 Apache Software Foundation. All Rights Reserved.