Interface ResolverStrategy

    • Method Detail

      • create

        java.lang.Object create​(TransactionContext tx,
                                java.lang.Object object)
                         throws PersistenceException
        Create an object of the base class with specified identity into the persistence storage.
        Parameters:
        tx - transaction in action
        object - the object to be created
        Returns:
        the identity of the object
        Throws:
        PersistenceException
      • postCreate

        java.lang.Object postCreate​(TransactionContext tx,
                                    OID oid,
                                    java.lang.Object object,
                                    java.lang.Object field,
                                    Identity createdId)
                             throws PersistenceException
        Called after successful creation of an object of the base class.
        Parameters:
        tx - transaction in action
        oid - the object identity of the object to be created.
        object - the object to be created
        field - The field value as returned by the SQLEngine
        createdId - ???
        Returns:
        the identity of the object
        Throws:
        PersistenceException
      • markCreate

        boolean markCreate​(TransactionContext tx,
                           OID oid,
                           java.lang.Object object)
                    throws PersistenceException
        Walk the object model and mark object that should be created.
        Parameters:
        tx - transaction in action
        oid - the object identity of the object to be created.
        object - the object to be created
        Returns:
        true if there's objects that should be created
        Throws:
        PersistenceException
      • preStore

        UpdateFlags preStore​(TransactionContext tx,
                             OID oid,
                             java.lang.Object object,
                             int timeout,
                             java.lang.Object field)
                      throws PersistenceException
        Check the object for modification. If dpendent object is dereferenced, it method will remove the object thru the transaction. If an related object is dereferenced, it method will make sure the formally object will be dereferenced from the other side as well. This method is called in prepare (for commit) state of the transaction. This method indicates if the object needed to be persist or cache should be update using TransactionContext.markDelete.
        Parameters:
        tx - transaction in action
        oid - the object identity of the object
        object - the data object to be checked
        timeout - timeout of updating the lock if needed
        field - The field value as returned by the SQLEngine
        Returns:
        true if the object is modified
        Throws:
        PersistenceException - If it is not possible to successfully complete this method.
      • store

        java.lang.Object store​(TransactionContext tx,
                               java.lang.Object object,
                               java.lang.Object field)
                        throws PersistenceException
        Store a data object into the persistent storage of the base class of this ClassMolder.
        Parameters:
        tx - Transaction in action
        object - the object to be stored
        field - The field value as returned by the SQLEngine
        Throws:
        PersistenceException
      • update

        void update​(TransactionContext tx,
                    OID oid,
                    java.lang.Object object,
                    AccessMode suggestedAccessMode,
                    java.lang.Object field)
             throws PersistenceException
        Update the object which loaded or created in the other transaction to the persistent storage.
        Parameters:
        tx - Transaction in action
        oid - the object identity of the stored object
        object - the object to be stored
        suggestedAccessMode - Suggested access mode
        field - The field value as returned by the SQLEngine
        Throws:
        PersistenceException - If it is not possible to successfully complete this method.
      • updateWhenNoTimestampSet

        boolean updateWhenNoTimestampSet​(TransactionContext tx,
                                         OID oid,
                                         java.lang.Object object,
                                         AccessMode suggestedAccessMode)
                                  throws PersistenceException
        Update the object which loaded or created in the other transaction to the persistent storage.
        Parameters:
        tx - Transaction in action
        oid - the object identity of the stored object
        object - the object to be stored
        suggestedAccessMode - Suggested access mode
        Returns:
        TODO
        Throws:
        PersistenceException - If it is not possible to successfully complete this method.
      • updateCache

        java.lang.Object updateCache​(TransactionContext tx,
                                     OID oid,
                                     java.lang.Object object)
        Update the dirty checking cache. This method is called after a transaction completed successfully.
        Parameters:
        tx - - transaction in action
        oid - - object's identity of the target object
        object - - the target object
        Returns:
        The object tha twas stored in the cache previously.
      • markDelete

        void markDelete​(TransactionContext tx,
                        java.lang.Object object,
                        java.lang.Object field)
                 throws PersistenceException
        Prepare to delete an object with the specified identity. If any sub-object should be deleted along with the target object, it should be deleted by this method.
        Parameters:
        tx - - transaction in action
        object - - the target object
        field - The field value as returned by the SQLEngine
        Throws:
        PersistenceException - If it is not possible to successfully complete this method.
      • revertObject

        void revertObject​(TransactionContext tx,
                          OID oid,
                          java.lang.Object object,
                          java.lang.Object field)
                   throws PersistenceException
        Revert the object back to the state of begining of the transaction If the object is loaded, it will be revert as it was loaded. If the object is created, it will be revert as it was just created.
        Parameters:
        tx - - transaction in action
        oid - - the object identity of the target object
        field - The field value as returned by the SQLEngine
        object - - the target object
        Throws:
        PersistenceException - If it is not possible to successfully complete this method.
      • expireCache

        void expireCache​(TransactionContext tx,
                         java.lang.Object field)
                  throws PersistenceException
        Inspect the fields stored in the object passed as an argument for contained objects. Request an expireCache for each contained object.
        Parameters:
        tx - The TransactionContext
        field - The field value as returned by the SQLEngine
        Throws:
        PersistenceException - If it is not possible to successfully complete this method.
      • load

        void load​(TransactionContext tx,
                  OID oid,
                  ProposedEntity proposedObject,
                  AccessMode suggestedAccessMode)
           throws PersistenceException
        Load an object with specified identity from the persistent storage.
        Parameters:
        tx - the TransactionContext in action
        oid - the object identity of the desired object
        proposedObject - Object holder storing information about assumed and actual object instances.
        suggestedAccessMode - the acessMode for the object
        Throws:
        PersistenceException - If it is not possible to successfully complete this method.
      • removeRelation

        UpdateAndRemovedFlags removeRelation​(TransactionContext tx,
                                             java.lang.Object object,
                                             ClassMolder relatedMolder,
                                             java.lang.Object relatedObject)
        Remove the reference of a related object from an object of the base class.

        If the related object is PersistanceCapable, the field will be set null. If the related object is a Collection, then the related object will be removed from the Collection.

        If any changed occured, transactionContext.markModified will be called, to indicate the object is modified.

        It method will iterate thur all of the object's field and try to remove all the occurrence.

        Parameters:
        tx - the TransactionContext of the transaction in action
        object - the target object of the base type of this ClassMolder
        relatedMolder - the ClassMolder of the related object to be removed from the object
        relatedObject - the object to be removed
        Returns:
        Various flags related to updating/removing object instances.