org.apache.openjpa.kernel
Class InverseManager

java.lang.Object
  extended by org.apache.openjpa.kernel.InverseManager
All Implemented Interfaces:
Configurable

public class InverseManager
extends Object
implements Configurable

Class which manages inverse relations before flushing to the datastore. Ensures that inverse fields are set. Currently limited to managing PC and Collection-type relations.

Author:
Steve Kim

Field Summary
protected  DataCacheManager _mgr
           
static int ACTION_EXCEPTION
          Constant representing the ACTION_EXCEPTION action
static int ACTION_MANAGE
          Constant representing the ACTION_MANAGE action
static int ACTION_WARN
          Constant representing the ACTION_WARN action
protected static Object NONE
           
 
Constructor Summary
InverseManager()
           
 
Method Summary
protected  void addToCollection(OpenJPAStateManager sm, FieldMetaData fmd, Object val)
          Add the given value to the collection at the selected field.
protected  void clearInverseRelations(OpenJPAStateManager sm, FieldMetaData fmd, FieldMetaData[] inverses, Object newValue)
          Remove all relations between the initial value of fmd for the instance managed by sm and its inverses.
protected  void clearInverseRelations(OpenJPAStateManager sm, Object val, FieldMetaData fmd, FieldMetaData[] inverses)
          Clear all inverse the relations from val to the instance managed by sm.
 void correctRelations(OpenJPAStateManager sm, FieldMetaData fmd, Object value)
          Correct relations from the given dirty field to inverse instances.
protected  void createInverseRelations(StoreContext ctx, Object fromRef, Object toRef, FieldMetaData fmd, FieldMetaData[] inverses)
          Create the inverse relations for all the given inverse fields.
 void endConfiguration()
          Invoked upon completion of bean property configuration for this object.
 int getAction()
          Return the action constant to use during relationship checking.
 boolean getManageLRS()
          Return whether to manage LRS fields.
protected  void removeFromCollection(OpenJPAStateManager sm, FieldMetaData fmd, Object val)
          Remove the given instance from the collection.
 void setAction(int action)
          Set the action constant to use during relationship checking.
 void setAction(String action)
          Set the action string to use during relationship checking.
 void setConfiguration(Configuration conf)
          Invoked prior to setting bean properties.
 void setManageLRS(boolean manage)
          Set whether to false LRS relations.
 void startConfiguration()
          Invoked before bean property configuration is begun on this object.
protected  void storeField(OpenJPAStateManager sm, FieldMetaData fmd, Object compare, Object val)
          Store a given value at the given field.
protected  void storeNull(OpenJPAStateManager sm, FieldMetaData fmd, Object compare)
          Store null value at the given field.
protected  void throwException(OpenJPAStateManager sm, FieldMetaData fmd)
          Throw an inconsistency exception
protected  void warnConsistency(OpenJPAStateManager sm, FieldMetaData fmd)
          Log an inconsistency warning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NONE

protected static final Object NONE

_mgr

protected DataCacheManager _mgr

ACTION_MANAGE

public static final int ACTION_MANAGE
Constant representing the ACTION_MANAGE action

See Also:
Constant Field Values

ACTION_WARN

public static final int ACTION_WARN
Constant representing the ACTION_WARN action

See Also:
Constant Field Values

ACTION_EXCEPTION

public static final int ACTION_EXCEPTION
Constant representing the ACTION_EXCEPTION action

See Also:
Constant Field Values
Constructor Detail

InverseManager

public InverseManager()
Method Detail

getManageLRS

public boolean getManageLRS()
Return whether to manage LRS fields.


setManageLRS

public void setManageLRS(boolean manage)
Set whether to false LRS relations. Defaults to false.


getAction

public int getAction()
Return the action constant to use during relationship checking. Defaults to ACTION_MANAGE.


setAction

public void setAction(int action)
Set the action constant to use during relationship checking. Defaults to ACTION_MANAGE.


setAction

public void setAction(String action)
Set the action string to use during relationship checking. Options include manage, exception, warn. This method is primarily for string-based automated configuration.


startConfiguration

public void startConfiguration()
Description copied from interface: Configurable
Invoked before bean property configuration is begun on this object.

Specified by:
startConfiguration in interface Configurable

endConfiguration

public void endConfiguration()
Description copied from interface: Configurable
Invoked upon completion of bean property configuration for this object.

Specified by:
endConfiguration in interface Configurable

setConfiguration

public void setConfiguration(Configuration conf)
Description copied from interface: Configurable
Invoked prior to setting bean properties.

Specified by:
setConfiguration in interface Configurable

correctRelations

public void correctRelations(OpenJPAStateManager sm,
                             FieldMetaData fmd,
                             Object value)
Correct relations from the given dirty field to inverse instances. Field fmd of the instance managed by sm has value value. Ensure that all inverses relations from value are consistent with this.


createInverseRelations

protected void createInverseRelations(StoreContext ctx,
                                      Object fromRef,
                                      Object toRef,
                                      FieldMetaData fmd,
                                      FieldMetaData[] inverses)
Create the inverse relations for all the given inverse fields. A relation exists from fromRef to toRef; this method creates the inverses.


clearInverseRelations

protected void clearInverseRelations(OpenJPAStateManager sm,
                                     FieldMetaData fmd,
                                     FieldMetaData[] inverses,
                                     Object newValue)
Remove all relations between the initial value of fmd for the instance managed by sm and its inverses. Relations shared with newValue can be left intact.


clearInverseRelations

protected void clearInverseRelations(OpenJPAStateManager sm,
                                     Object val,
                                     FieldMetaData fmd,
                                     FieldMetaData[] inverses)
Clear all inverse the relations from val to the instance managed by sm.


storeNull

protected void storeNull(OpenJPAStateManager sm,
                         FieldMetaData fmd,
                         Object compare)
Store null value at the given field. Verify that the given compare value is the value being nulled. Pass NONE for no comparison.


storeField

protected void storeField(OpenJPAStateManager sm,
                          FieldMetaData fmd,
                          Object compare,
                          Object val)
Store a given value at the given field. Compare the given argument if not NONE.


removeFromCollection

protected void removeFromCollection(OpenJPAStateManager sm,
                                    FieldMetaData fmd,
                                    Object val)
Remove the given instance from the collection.


addToCollection

protected void addToCollection(OpenJPAStateManager sm,
                               FieldMetaData fmd,
                               Object val)
Add the given value to the collection at the selected field.


warnConsistency

protected void warnConsistency(OpenJPAStateManager sm,
                               FieldMetaData fmd)
Log an inconsistency warning


throwException

protected void throwException(OpenJPAStateManager sm,
                              FieldMetaData fmd)
Throw an inconsistency exception



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