Class InValueDiscriminatorStrategy
java.lang.Object
org.apache.openjpa.jdbc.meta.strats.AbstractStrategy
org.apache.openjpa.jdbc.meta.strats.AbstractDiscriminatorStrategy
org.apache.openjpa.jdbc.meta.strats.InValueDiscriminatorStrategy
- All Implemented Interfaces:
Serializable
,DiscriminatorStrategy
,Strategy
- Direct Known Subclasses:
ClassNameDiscriminatorStrategy
,ValueMapDiscriminatorStrategy
Base discriminator strategy that determines the class of database
records using a column holding a value mapped to a class, and limits
SELECTs using an IN (...) statement.
- Author:
- Abe White
- See Also:
-
Field Summary
Fields inherited from class org.apache.openjpa.jdbc.meta.strats.AbstractDiscriminatorStrategy
disc, isFinal
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected abstract Class
Convert the given discriminator value to the corresponding class.getClass
(JDBCStore store, ClassMapping base, Result res) Return the class for the current result row.getClassConditions
(Select sel, Joins joins, ClassMapping base, boolean subclasses) Return SQL to limit the classes selected as much as possible to the given base class, and optionally its subclasses.protected abstract Object
Return the discriminator value for the given type.protected abstract int
Return the Java type code fromJavaTypes
for the discriminator values.boolean
hasClassConditions
(ClassMapping base, boolean subclasses) Whether any class conditions are necessary.void
insert
(OpenJPAStateManager sm, JDBCStore store, RowManager rm) Set values for the mapping into the proper rows.void
map
(boolean adapt) Map the owning mapping using this strategy.boolean
select
(Select sel, ClassMapping mapping) Select the data for this Discriminator.Methods inherited from class org.apache.openjpa.jdbc.meta.strats.AbstractDiscriminatorStrategy
loadSubclasses, setDiscriminator
Methods inherited from class org.apache.openjpa.jdbc.meta.strats.AbstractStrategy
customDelete, customInsert, customUpdate, delete, getAlias, initialize, isCustomDelete, isCustomInsert, isCustomUpdate, update
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, delete, getAlias, initialize, isCustomDelete, isCustomInsert, isCustomUpdate, update
-
Constructor Details
-
InValueDiscriminatorStrategy
public InValueDiscriminatorStrategy()
-
-
Method Details
-
getJavaType
protected abstract int getJavaType()Return the Java type code fromJavaTypes
for the discriminator values. This method is only used during mapping installation. -
getDiscriminatorValue
Return the discriminator value for the given type. -
getClass
Convert the given discriminator value to the corresponding class.- Throws:
ClassNotFoundException
-
map
public void map(boolean adapt) Description copied from interface:Strategy
Map the owning mapping using this strategy.- Specified by:
map
in interfaceStrategy
- Overrides:
map
in classAbstractStrategy
- Parameters:
adapt
- if true, use the owning mapping's raw mapping info to set its ORM data; if false, ORM data will already be set
-
insert
Description copied from interface:Strategy
Set values for the mapping into the proper rows. For class mappings, this method will be called only after the corresponding method has been called for all fields of this mapping.- Specified by:
insert
in interfaceStrategy
- Overrides:
insert
in classAbstractStrategy
- Throws:
SQLException
-
select
Description copied from interface:DiscriminatorStrategy
Select the data for this Discriminator.- Specified by:
select
in interfaceDiscriminatorStrategy
- Overrides:
select
in classAbstractDiscriminatorStrategy
mapping
- the known base class being selected; this may not be the base class in the inheritance hierarchy- Returns:
- true if anything was selected; false otherwise
-
getClass
public Class getClass(JDBCStore store, ClassMapping base, Result res) throws SQLException, ClassNotFoundException Description copied from interface:DiscriminatorStrategy
Return the class for the current result row.- Specified by:
getClass
in interfaceDiscriminatorStrategy
- Overrides:
getClass
in classAbstractDiscriminatorStrategy
- Throws:
SQLException
ClassNotFoundException
-
hasClassConditions
Description copied from interface:DiscriminatorStrategy
Whether any class conditions are necessary.- Specified by:
hasClassConditions
in interfaceDiscriminatorStrategy
- Overrides:
hasClassConditions
in classAbstractDiscriminatorStrategy
- See Also:
-
getClassConditions
Description copied from interface:DiscriminatorStrategy
Return SQL to limit the classes selected as much as possible to the given base class, and optionally its subclasses. The select and joins instances are supplied in order to get column aliases.- Specified by:
getClassConditions
in interfaceDiscriminatorStrategy
- Overrides:
getClassConditions
in classAbstractDiscriminatorStrategy
-