|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.openjpa.jdbc.meta.strats.AbstractStrategy org.apache.openjpa.jdbc.meta.strats.AbstractFieldStrategy org.apache.openjpa.jdbc.meta.strats.HandlerFieldStrategy
public class HandlerFieldStrategy
Mapping for a single-valued field that delegates to a ValueHandler
.
Field Summary | |
---|---|
protected Object[] |
_args
|
protected Column[] |
_cols
|
protected ColumnIO |
_io
|
protected boolean |
_load
|
protected boolean |
_lob
|
Fields inherited from class org.apache.openjpa.jdbc.meta.strats.AbstractFieldStrategy |
---|
field |
Fields inherited from interface org.apache.openjpa.jdbc.meta.Embeddable |
---|
UNSUPPORTED |
Constructor Summary | |
---|---|
HandlerFieldStrategy()
|
Method Summary | |
---|---|
void |
appendIsNotNull(SQLBuffer sql,
Select sel,
Joins joins)
Append a where clause to the given statement checking if this value is not null. |
void |
appendIsNull(SQLBuffer sql,
Select sel,
Joins joins)
Append a where clause to the given statement checking if this value is null. |
void |
delete(OpenJPAStateManager sm,
JDBCStore store,
RowManager rm)
Set the where values appropriately to delete the proper instance, and set all relations on non-secondary tables as updates. |
ColumnIO |
getColumnIO()
Return column I/O information for this mapping. |
Column[] |
getColumns()
The columns managed by this joinable. |
int |
getFieldIndex()
Return the field index of this joinable, or -1 if not a field. |
Object |
getJoinValue(Object fieldVal,
Column col,
JDBCStore store)
Return the join value of the given column. |
Object |
getJoinValue(OpenJPAStateManager sm,
Column col,
JDBCStore store)
Return the join value of the given column. |
Object |
getPrimaryKeyValue(Result res,
Column[] cols,
ForeignKey fk,
JDBCStore store,
Joins joins)
Return the value for this joinable from the given result, using the given columns. |
Object[] |
getResultArguments()
Return the arguments needed to extract datastore values via Result.getObject(java.lang.Object, int, java.lang.Object) for each column. |
void |
initialize()
Perform caching and other initialization operations. |
void |
insert(OpenJPAStateManager sm,
JDBCStore store,
RowManager rm)
Set values for the mapping into the proper rows. |
boolean |
isVersionable()
Return true if this field can be used as part of a state image for optimistic locking. |
Joins |
join(Joins joins,
boolean forceOuter)
Join this value to the class table. |
Joins |
joinRelation(Joins joins,
boolean forceOuter,
boolean traverse)
Join this value's table to the table for the related first class object type, if any. |
void |
load(OpenJPAStateManager sm,
JDBCStore store,
JDBCFetchConfiguration fetch)
Load secondary data using a connection from the store manager. |
void |
load(OpenJPAStateManager sm,
JDBCStore store,
JDBCFetchConfiguration fetch,
Result res)
Load virtual row data; the given result is not guaranteed to contain data for this field, so the field mapping should make sure the result contains its needed column data before loading. |
void |
loadEmbedded(OpenJPAStateManager sm,
JDBCStore store,
JDBCFetchConfiguration fetch,
Object val)
Load this strategy's field by transforming the given datastore value. |
Object |
loadProjection(JDBCStore store,
JDBCFetchConfiguration fetch,
Result res,
Joins joins)
Load this field value using the given result. |
void |
map(boolean adapt)
Map the owning mapping using this strategy. |
int |
select(Select sel,
OpenJPAStateManager sm,
JDBCStore store,
JDBCFetchConfiguration fetch,
int eagerMode)
Select the virtual row columns of this mapping. |
void |
setAutoAssignedValue(OpenJPAStateManager sm,
JDBCStore store,
Column col,
Object autoInc)
Use the given auto-assigned value to set this join value's field on the given instance. |
int |
supportsSelect(Select sel,
int type,
OpenJPAStateManager sm,
JDBCStore store,
JDBCFetchConfiguration fetch)
Return whether this mapping can perform the given select type. |
Object |
toDataStoreValue(Object val,
JDBCStore store)
Translate the given external field value to its datastore equivalent. |
Object |
toEmbeddedDataStoreValue(Object val,
JDBCStore store)
Convert the given Java value to its datastore equivalent. |
Object |
toEmbeddedObjectValue(Object val)
Convert the given datastore value to its Java equivalent. |
void |
update(OpenJPAStateManager sm,
JDBCStore store,
RowManager rm)
Set values for the mapping into the proper rows. |
void |
where(OpenJPAStateManager sm,
JDBCStore store,
RowManager rm,
Object prevValue)
Add a WHERE condition to the row for this field such that the field's current DB value must equal the given previous value. |
Methods inherited from class org.apache.openjpa.jdbc.meta.strats.AbstractFieldStrategy |
---|
appendIndex, appendIsEmpty, appendIsNotEmpty, appendSize, appendType, assertNotMappedBy, isEagerSelectToMany, joinKey, joinKeyRelation, loadEagerJoin, loadEagerParallel, loadKeyProjection, selectEagerJoin, selectEagerParallel, setFieldMapping, toKeyDataStoreValue |
Methods inherited from class org.apache.openjpa.jdbc.meta.strats.AbstractStrategy |
---|
customDelete, customInsert, customUpdate, getAlias, isCustomDelete, isCustomInsert, isCustomUpdate |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.apache.openjpa.jdbc.meta.Strategy |
---|
customDelete, customInsert, customUpdate, getAlias, isCustomDelete, isCustomInsert, isCustomUpdate |
Field Detail |
---|
protected Column[] _cols
protected ColumnIO _io
protected Object[] _args
protected boolean _load
protected boolean _lob
Constructor Detail |
---|
public HandlerFieldStrategy()
Method Detail |
---|
public void map(boolean adapt)
Strategy
map
in interface Strategy
map
in class AbstractStrategy
adapt
- if true, use the owning mapping's raw mapping info
to set its ORM data; if false, ORM data will already be setpublic void initialize()
Strategy
Strategy.map(boolean)
, and after all related components have been
mapped as well.
initialize
in interface Strategy
initialize
in class AbstractStrategy
public void insert(OpenJPAStateManager sm, JDBCStore store, RowManager rm) throws SQLException
Strategy
insert
in interface Strategy
insert
in class AbstractStrategy
SQLException
public void update(OpenJPAStateManager sm, JDBCStore store, RowManager rm) throws SQLException
Strategy
update
in interface Strategy
update
in class AbstractStrategy
SQLException
Strategy.insert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)
public void delete(OpenJPAStateManager sm, JDBCStore store, RowManager rm) throws SQLException
Strategy
delete
in interface Strategy
delete
in class AbstractStrategy
SQLException
Strategy.insert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)
public int supportsSelect(Select sel, int type, OpenJPAStateManager sm, JDBCStore store, JDBCFetchConfiguration fetch)
FieldStrategy
supportsSelect
in interface FieldStrategy
supportsSelect
in class AbstractFieldStrategy
Select
public int select(Select sel, OpenJPAStateManager sm, JDBCStore store, JDBCFetchConfiguration fetch, int eagerMode)
FieldStrategy
select
in interface FieldStrategy
select
in class AbstractFieldStrategy
sel
- the select to add tosm
- the instance being loaded, or null if not
initialized yet or selecting for multiple instancesstore
- the current store managerfetch
- fetch configurationeagerMode
- the eager fetch mode to use; this may be more
restrictive than the mode of the fetch configuration
public void load(OpenJPAStateManager sm, JDBCStore store, JDBCFetchConfiguration fetch, Result res) throws SQLException
FieldStrategy
load
in interface FieldStrategy
load
in class AbstractFieldStrategy
SQLException
public void load(OpenJPAStateManager sm, JDBCStore store, JDBCFetchConfiguration fetch) throws SQLException
FieldStrategy
load
in interface FieldStrategy
load
in class AbstractFieldStrategy
SQLException
public Object toDataStoreValue(Object val, JDBCStore store)
FieldStrategy
toDataStoreValue
in interface FieldStrategy
toDataStoreValue
in class AbstractFieldStrategy
public void appendIsNull(SQLBuffer sql, Select sel, Joins joins)
FieldStrategy
appendIsNull
in interface FieldStrategy
appendIsNull
in class AbstractFieldStrategy
public void appendIsNotNull(SQLBuffer sql, Select sel, Joins joins)
FieldStrategy
appendIsNotNull
in interface FieldStrategy
appendIsNotNull
in class AbstractFieldStrategy
public Joins join(Joins joins, boolean forceOuter)
FieldStrategy
join
in interface FieldStrategy
join
in class AbstractFieldStrategy
public Joins joinRelation(Joins joins, boolean forceOuter, boolean traverse)
FieldStrategy
joinRelation
in interface FieldStrategy
joinRelation
in class AbstractFieldStrategy
traverse
- if true, throw proper exception if it is not
possible for this mapping to traverse into the related typepublic Object loadProjection(JDBCStore store, JDBCFetchConfiguration fetch, Result res, Joins joins) throws SQLException
FieldStrategy
ValueMapping.getColumns()
.
loadProjection
in interface FieldStrategy
loadProjection
in class AbstractFieldStrategy
SQLException
public boolean isVersionable()
FieldStrategy
isVersionable
in interface FieldStrategy
isVersionable
in class AbstractFieldStrategy
public void where(OpenJPAStateManager sm, JDBCStore store, RowManager rm, Object prevValue) throws SQLException
FieldStrategy
where
in interface FieldStrategy
where
in class AbstractFieldStrategy
SQLException
public int getFieldIndex()
Joinable
getFieldIndex
in interface Joinable
public Object getPrimaryKeyValue(Result res, Column[] cols, ForeignKey fk, JDBCStore store, Joins joins) throws SQLException
Joinable
ForeignKey.getColumn(org.apache.openjpa.jdbc.schema.Column)
.
getPrimaryKeyValue
in interface Joinable
SQLException
public Column[] getColumns()
Joinable
getColumns
in interface Embeddable
getColumns
in interface Joinable
public Object[] getResultArguments()
Embeddable
Result.getObject(java.lang.Object, int, java.lang.Object)
for each column.
getResultArguments
in interface Embeddable
public Object getJoinValue(Object fieldVal, Column col, JDBCStore store)
Joinable
getJoinValue
in interface Joinable
fieldVal
- the value of the field for this joinablecol
- the column of this joinable whose value to returnpublic Object getJoinValue(OpenJPAStateManager sm, Column col, JDBCStore store)
Joinable
getJoinValue
in interface Joinable
sm
- the instance from which to get the valuecol
- the column whose value to returnpublic void setAutoAssignedValue(OpenJPAStateManager sm, JDBCStore store, Column col, Object autoInc)
Joinable
setAutoAssignedValue
in interface Joinable
public ColumnIO getColumnIO()
Embeddable
getColumnIO
in interface Embeddable
public Object toEmbeddedDataStoreValue(Object val, JDBCStore store)
Embeddable
toEmbeddedDataStoreValue
in interface Embeddable
public Object toEmbeddedObjectValue(Object val)
Embeddable
Embeddable.getColumns()
returns multiple columns, the given datastore
value will be an object array of the corresponding length. This method
must only be supported by mappings of embedded id objects. In other
cases Embeddable.loadEmbedded(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, java.lang.Object)
will be used instead. Return
Embeddable.UNSUPPORTED
if this mapping cannot support this method.
toEmbeddedObjectValue
in interface Embeddable
public void loadEmbedded(OpenJPAStateManager sm, JDBCStore store, JDBCFetchConfiguration fetch, Object val) throws SQLException
Embeddable
Embeddable.getColumns()
returns multiple columns, the given datastore
value will be an object array of the corresponding length. The value
does not have to be loaded immediately; it may be stored as impl data.
loadEmbedded
in interface Embeddable
SQLException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |