Class 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
    • 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​(java.lang.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
      • correctRelations

        public void correctRelations​(OpenJPAStateManager sm,
                                     FieldMetaData fmd,
                                     java.lang.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,
                                              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 from fromRef to toRef; 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 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,
                                             java.lang.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,
                                 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.