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

java.lang.Object
  extended by org.apache.openjpa.jdbc.meta.strats.AbstractStrategy
      extended by org.apache.openjpa.jdbc.meta.strats.AbstractDiscriminatorStrategy
All Implemented Interfaces:
Serializable, DiscriminatorStrategy, Strategy
Direct Known Subclasses:
InValueDiscriminatorStrategy, NoneDiscriminatorStrategy, SubclassJoinDiscriminatorStrategy, SuperclassDiscriminatorStrategy

public abstract class AbstractDiscriminatorStrategy
extends AbstractStrategy
implements DiscriminatorStrategy

No-op strategy for easy extension.

Author:
Abe White
See Also:
Serialized Form

Field Summary
protected  Discriminator disc
          The owning discriminator.
protected  boolean isFinal
          Whether the owning class is final.
 
Constructor Summary
AbstractDiscriminatorStrategy()
           
 
Method Summary
 Class getClass(JDBCStore store, ClassMapping base, Result result)
          Return the class for the current result row.
 SQLBuffer getClassConditions(Select sel, Joins joins, ClassMapping base, boolean subs)
          Return SQL to limit the classes selected as much as possible to the given base class, and optionally its subclasses.
 boolean hasClassConditions(ClassMapping base, boolean subs)
          Whether any class conditions are necessary.
 void loadSubclasses(JDBCStore store)
          By default, logs a warning that this discriminator cannot calculate its list of subclasses on its own.
 boolean select(Select sel, ClassMapping mapping)
          Select the data for this Discriminator.
 void setDiscriminator(Discriminator owner)
          Set the Discriminator that uses this strategy.
 
Methods inherited from class org.apache.openjpa.jdbc.meta.strats.AbstractStrategy
customDelete, customInsert, customUpdate, delete, getAlias, initialize, insert, isCustomDelete, isCustomInsert, isCustomUpdate, map, 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, insert, isCustomDelete, isCustomInsert, isCustomUpdate, map, update
 

Field Detail

disc

protected Discriminator disc
The owning discriminator.


isFinal

protected boolean isFinal
Whether the owning class is final.

Constructor Detail

AbstractDiscriminatorStrategy

public AbstractDiscriminatorStrategy()
Method Detail

setDiscriminator

public void setDiscriminator(Discriminator owner)
Description copied from interface: DiscriminatorStrategy
Set the Discriminator that uses this strategy. This will be called before use.

Specified by:
setDiscriminator in interface DiscriminatorStrategy

select

public boolean select(Select sel,
                      ClassMapping mapping)
Description copied from interface: DiscriminatorStrategy
Select the data for this Discriminator.

Specified by:
select in interface DiscriminatorStrategy
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

loadSubclasses

public void loadSubclasses(JDBCStore store)
                    throws SQLException,
                           ClassNotFoundException
By default, logs a warning that this discriminator cannot calculate its list of subclasses on its own.

Specified by:
loadSubclasses in interface DiscriminatorStrategy
Throws:
SQLException
ClassNotFoundException

getClass

public Class getClass(JDBCStore store,
                      ClassMapping base,
                      Result result)
               throws SQLException,
                      ClassNotFoundException
Description copied from interface: DiscriminatorStrategy
Return the class for the current result row.

Specified by:
getClass in interface DiscriminatorStrategy
Throws:
SQLException
ClassNotFoundException

hasClassConditions

public boolean hasClassConditions(ClassMapping base,
                                  boolean subs)
Description copied from interface: DiscriminatorStrategy
Whether any class conditions are necessary.

Specified by:
hasClassConditions in interface DiscriminatorStrategy
See Also:
DiscriminatorStrategy.getClassConditions(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.meta.ClassMapping, boolean)

getClassConditions

public SQLBuffer getClassConditions(Select sel,
                                    Joins joins,
                                    ClassMapping base,
                                    boolean subs)
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 interface DiscriminatorStrategy


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