Package org.apache.openjpa.kernel
Class InverseManager
- java.lang.Object
-
- org.apache.openjpa.kernel.InverseManager
-
- All Implemented Interfaces:
Configurable
public class InverseManager extends java.lang.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
Fields Modifier and Type Field Description protected DataCacheManager
_mgr
static int
ACTION_EXCEPTION
Constant representing theACTION_EXCEPTION
actionstatic int
ACTION_MANAGE
Constant representing theACTION_MANAGE
actionstatic int
ACTION_WARN
Constant representing theACTION_WARN
actionprotected static java.lang.Object
NONE
-
Constructor Summary
Constructors Constructor Description InverseManager()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addToCollection(OpenJPAStateManager sm, FieldMetaData fmd, java.lang.Object val)
Add the given value to the collection at the selected field.protected void
clearInverseRelations(OpenJPAStateManager sm, java.lang.Object val, FieldMetaData fmd, FieldMetaData[] inverses)
Clear all inverse the relations fromval
to the instance managed bysm
.protected void
clearInverseRelations(OpenJPAStateManager sm, FieldMetaData fmd, FieldMetaData[] inverses, java.lang.Object newValue)
Remove all relations between the initial value offmd
for the instance managed bysm
and its inverses.void
correctRelations(OpenJPAStateManager sm, FieldMetaData fmd, java.lang.Object value)
Correct relations from the given dirty field to inverse instances.protected void
createInverseRelations(StoreContext ctx, java.lang.Object fromRef, java.lang.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, java.lang.Object val)
Remove the given instance from the collection.void
setAction(int action)
Set the action constant to use during relationship checking.void
setAction(java.lang.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, java.lang.Object compare, java.lang.Object val)
Store a given value at the given field.protected void
storeNull(OpenJPAStateManager sm, FieldMetaData fmd, java.lang.Object compare)
Store null value at the given field.protected void
throwException(OpenJPAStateManager sm, FieldMetaData fmd)
Throw an inconsistency exceptionprotected void
warnConsistency(OpenJPAStateManager sm, FieldMetaData fmd)
Log an inconsistency warning
-
-
-
Field Detail
-
NONE
protected static final java.lang.Object NONE
-
_mgr
protected DataCacheManager _mgr
-
ACTION_MANAGE
public static final int ACTION_MANAGE
Constant representing theACTION_MANAGE
action- See Also:
- Constant Field Values
-
ACTION_WARN
public static final int ACTION_WARN
Constant representing theACTION_WARN
action- See Also:
- Constant Field Values
-
ACTION_EXCEPTION
public static final int ACTION_EXCEPTION
Constant representing theACTION_EXCEPTION
action- See Also:
- Constant Field Values
-
-
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 toACTION_MANAGE
.
-
setAction
public void setAction(int action)
Set the action constant to use during relationship checking. Defaults toACTION_MANAGE
.
-
setAction
public void setAction(java.lang.String action)
Set the action string to use during relationship checking. Options includemanage, 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 interfaceConfigurable
-
endConfiguration
public void endConfiguration()
Description copied from interface:Configurable
Invoked upon completion of bean property configuration for this object.- Specified by:
endConfiguration
in interfaceConfigurable
-
setConfiguration
public void setConfiguration(Configuration conf)
Description copied from interface:Configurable
Invoked prior to setting bean properties.- Specified by:
setConfiguration
in interfaceConfigurable
-
correctRelations
public void correctRelations(OpenJPAStateManager sm, FieldMetaData fmd, java.lang.Object value)
Correct relations from the given dirty field to inverse instances. Fieldfmd
of the instance managed bysm
has valuevalue
. Ensure that all inverses relations fromvalue
are consistent with this.
-
createInverseRelations
protected void createInverseRelations(StoreContext ctx, java.lang.Object fromRef, java.lang.Object toRef, FieldMetaData fmd, FieldMetaData[] inverses)
Create the inverse relations for all the given inverse fields. A relation exists fromfromRef
totoRef
; this method creates the inverses.
-
clearInverseRelations
protected void clearInverseRelations(OpenJPAStateManager sm, FieldMetaData fmd, FieldMetaData[] inverses, java.lang.Object newValue)
Remove all relations between the initial value offmd
for the instance managed bysm
and its inverses. Relations shared withnewValue
can be left intact.
-
clearInverseRelations
protected void clearInverseRelations(OpenJPAStateManager sm, java.lang.Object val, FieldMetaData fmd, FieldMetaData[] inverses)
Clear all inverse the relations fromval
to the instance managed bysm
.
-
storeNull
protected void storeNull(OpenJPAStateManager sm, FieldMetaData fmd, java.lang.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, java.lang.Object compare, java.lang.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, java.lang.Object val)
Remove the given instance from the collection.
-
addToCollection
protected void addToCollection(OpenJPAStateManager sm, FieldMetaData fmd, java.lang.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
-
-