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 ColumnVersionStrategy

    java.lang.Object
      org.apache.openjpa.jdbc.meta.strats.AbstractStrategy
          org.apache.openjpa.jdbc.meta.strats.AbstractVersionStrategy
              org.apache.openjpa.jdbc.meta.strats.ColumnVersionStrategy

All Implemented Interfaces:
  Serializable, Strategy, VersionStrategy

Direct Known Subclasses:
  NumberVersionStrategy, TimestampVersionStrategy

    public abstract class ColumnVersionStrategy

extends AbstractVersionStrategy

Uses a one or more column(s) and corresponding version object.

Author:
  Marc Prud'hommeaux, Pinaki Poddar
See Also:
  Serialized Form

Field Summary

Fields inherited from class org.apache.openjpa.jdbc.meta.strats.AbstractVersionStrategy
`vers`

Constructor Summary
`ColumnVersionStrategy()`

Method Summary
`boolean` | `checkVersion(OpenJPAStateManager sm, JDBCStore store, boolean updateVersion)` Checks the version of the given state manager with the version stored in memory.
`protected int` | `compare(Object[] a1, Object[] a2)` Compare each element of the given arrays that must be of equal size.
`protected int` | `compare(Object v1, Object v2)` Compare the two versions.
`int` | `compareVersion(Object v1, Object v2)`
`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.
`(package private) Object` | `getColumnValue(Object o, int idx)`
`protected abstract int` | `getJavaType()` Return the code from `JavaTypes` for the version values this strategy uses.
`protected int` | `getJavaType(int i)` Return the code from `JavaTypes` for the version value this given column index uses.
`void` | `insert(OpenJPAStateManager sm, JDBCStore store, RowManager rm)` Set values for the mapping into the proper rows.
`(package private) boolean` | `isSecondaryColumn(Column col, OpenJPAStateManager sm)`
`Object` | `load(OpenJPAStateManager sm, JDBCStore store, Result res)` Load data.
`void` | `map(boolean adapt)` Map the owning mapping using this strategy.
`protected abstract Object` | `nextVersion(Object version)` Return the next version given the current one, which may be null.
`(package private) Object` | `populateFromResult(Result res)` Populate values of a version object from the given result.
`boolean` | `select(Select sel, ClassMapping mapping)` Select the data for this indicator.
`void` | `update(OpenJPAStateManager sm, JDBCStore store, RowManager rm)` Set values for the mapping into the proper rows.

Methods inherited from class org.apache.openjpa.jdbc.meta.strats.AbstractVersionStrategy
`afterLoad, getBulkUpdateValues, setVersion`

Methods inherited from class org.apache.openjpa.jdbc.meta.strats.AbstractStrategy
`customDelete, customInsert, customUpdate, getAlias, initialize, 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, initialize, isCustomDelete, isCustomInsert, isCustomUpdate`

Constructor Detail

### ColumnVersionStrategy

    public ColumnVersionStrategy()

Method Detail

### getJavaType

    protected abstract int getJavaType()

  Return the code from `JavaTypes` for the version values this strategy uses. This method is only used during mapping installation.

### getJavaType

    protected int getJavaType(int i)

  Return the code from `JavaTypes` for the version value this given column index uses. Only used if the version strategy employs more than one column.

### nextVersion

    protected abstract Object nextVersion(Object version)

  Return the next version given the current one, which may be null.

### compare

    protected int compare(Object v1,
                          Object v2)

  Compare the two versions. Defaults to assuming the version objects implement `Comparable`.

  See Also:
    `Comparator.compare(T, T)`

### compare

    protected int compare(Object[] a1,
                          Object[] a2)

  Compare each element of the given arrays that must be of equal size. The given array values represent version values and the result designate whether first version is earlier, same or later than the second one.

  Returns:
    If any element of a1 is later than corresponding element of a2 then returns 1 i.e. the first version is later than the second version. If each element of a1 is equal to corresponding element of a2 then return 0 i.e. the first version is same as the second version. else return a negative number i.e. the first version is earlier than the second version.

### 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`

### update

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

  Description copied from interface: `Strategy`
  Set values for the mapping into the proper rows.

  Specified by:
    `update` in interface `Strategy`
  Overrides:
    `update` in class `AbstractStrategy`
  Throws:
    `SQLException`
  See Also:
    `Strategy.insert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)`

### delete

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

  Description copied from interface: `Strategy`
  Set the where values appropriately to delete the proper instance, and set all relations on non-secondary tables as updates. This allows foreign key analysis.

  Specified by:
    `delete` in interface `Strategy`
  Overrides:
    `delete` in class `AbstractStrategy`
  Throws:
    `SQLException`
  See Also:
    `Strategy.insert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)`

### select

    public boolean select(Select sel,
                          ClassMapping mapping)

  Description copied from interface: `VersionStrategy`
  Select the data for this indicator.

  Specified by:
    `select` in interface `VersionStrategy`
  Overrides:
    `select` in class `AbstractVersionStrategy`
    `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

### load

    public Object load(OpenJPAStateManager sm,
                       JDBCStore store,
                       Result res)
                throws SQLException

  Description copied from interface: `VersionStrategy`
  Load data.

  Specified by:
    `load` in interface `VersionStrategy`
  Overrides:
    `load` in class `AbstractVersionStrategy`
  Throws:
    `SQLException`

### checkVersion

    public boolean checkVersion(OpenJPAStateManager sm,
                                JDBCStore store,
                                boolean updateVersion)
                         throws SQLException

  Description copied from interface: `VersionStrategy`
  Checks the version of the given state manager with the version stored in memory.

  Specified by:
    `checkVersion` in interface `VersionStrategy`
  Overrides:
    `checkVersion` in class `AbstractVersionStrategy`
  Returns:
    true if the in-memory version was up-to-date, false otherwise
  Throws:
    `SQLException`

### compareVersion

    public int compareVersion(Object v1,
                              Object v2)

  Specified by:
    `compareVersion` in interface `VersionStrategy`
  Overrides:
    `compareVersion` in class `AbstractVersionStrategy`
  See Also:
    `StoreManager.compareVersion(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object, java.lang.Object)`

### populateFromResult

    Object populateFromResult(Result res)
                        throws SQLException

  Populate values of a version object from the given result.

  Returns:
    a single Object or an array depending on whether using a single or multiple columns being used for representation.
  Throws:
    `SQLException`

### getColumnValue

    Object getColumnValue(Object o,
                          int idx)

### isSecondaryColumn

    boolean isSecondaryColumn(Column col,
                              OpenJPAStateManager sm)

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.