Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.openjpa.jdbc.meta.strats
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

    public abstract class InValueDiscriminatorStrategy

extends AbstractDiscriminatorStrategy

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:
  Serialized Form

Field Summary

Fields inherited from class org.apache.openjpa.jdbc.meta.strats.AbstractDiscriminatorStrategy
`disc, isFinal`

Constructor Summary
`InValueDiscriminatorStrategy()`

Method Summary
`Class` | `getClass(JDBCStore store, ClassMapping base, Result res)` Return the class for the current result row.
`protected abstract Class` | `getClass(Object val, JDBCStore store)` Convert the given discriminator value to the corresponding class.
`SQLBuffer` | `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` | `getDiscriminatorValue(ClassMapping cls)` Return the discriminator value for the given type.
`protected abstract int` | `getJavaType()` Return the Java type code from `JavaTypes` 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 Detail

### InValueDiscriminatorStrategy

    public InValueDiscriminatorStrategy()

Method Detail

### getJavaType

    protected abstract int getJavaType()

  Return the Java type code from `JavaTypes` for the discriminator values. This method is only used during mapping installation.

### getDiscriminatorValue

    protected abstract Object getDiscriminatorValue(ClassMapping cls)

  Return the discriminator value for the given type.

### getClass

    protected abstract Class getClass(Object val,
                                      JDBCStore store)
                               throws ClassNotFoundException

  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 interface `Strategy`
  Overrides:
    `map` in class `AbstractStrategy`
  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

    public void insert(OpenJPAStateManager sm,
                       JDBCStore store,
                       RowManager rm)
                throws SQLException

  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 interface `Strategy`
  Overrides:
    `insert` in class `AbstractStrategy`
  Throws:
    `SQLException`

### 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`
  Overrides:
    `select` in class `AbstractDiscriminatorStrategy`
    `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 interface `DiscriminatorStrategy`
  Overrides:
    `getClass` in class `AbstractDiscriminatorStrategy`
  Throws:
    `SQLException`
    `ClassNotFoundException`

### hasClassConditions

    public boolean hasClassConditions(ClassMapping base,
                                      boolean subclasses)

  Description copied from interface: `DiscriminatorStrategy`
  Whether any class conditions are necessary.

  Specified by:
    `hasClassConditions` in interface `DiscriminatorStrategy`
  Overrides:
    `hasClassConditions` in class `AbstractDiscriminatorStrategy`
  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 subclasses)

  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`
  Overrides:
    `getClassConditions` in class `AbstractDiscriminatorStrategy`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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