Class LockManagerImpl

  • All Implemented Interfaces:
    LockManager

    public class LockManagerImpl
    extends java.lang.Object
    implements LockManager
    Implementation of a lock manager for objects.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void clear()
      Method to clear all settings of required lock level.
      void close()
      Method to close the manager and release resources.
      LockMode getLockMode​(java.lang.Object id)
      Accessor for what locking should be applied to the object with the specified identity (mode 2).
      LockMode getLockMode​(DNStateManager sm)
      Accessor for the current lock mode for the object managed by the passed StateManager (mode 1).
      java.lang.Object getNextVersion​(VersionMetaData vermd, java.lang.Object currentVersion)
      Convenience method to provide the next version to use given the VersionMetaData and the current version.
      void lock​(java.lang.Object id, LockMode lockMode)
      Method to lock the object with the provided identity (mode 2).
      void lock​(DNStateManager sm, LockMode lockMode)
      Method to lock the object managed by the passed StateManager (mode 1).
      void performOptimisticVersionCheck​(DNStateManager sm, VersionStrategy versionStrategy, java.lang.Object versionDatastore)
      Perform an optimistic version check on the passed object, against the passed version in the datastore.
      void unlock​(DNStateManager sm)
      Method to unlock the object managed by the passed StateManager (mode 1).
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • requiredLockModesById

        java.util.Map<java.lang.Object,​LockMode> requiredLockModesById
        Map of lock mode, keyed by the object identity. Utilised on a find operation.
      • lockModeBySM

        java.util.Map<DNStateManager,​LockMode> lockModeBySM
        Map of lock mode, keyed by StateManager.
    • Method Detail

      • close

        public void close()
        Description copied from interface: LockManager
        Method to close the manager and release resources.
        Specified by:
        close in interface LockManager
      • clear

        public void clear()
        Description copied from interface: LockManager
        Method to clear all settings of required lock level.
        Specified by:
        clear in interface LockManager
      • lock

        public void lock​(java.lang.Object id,
                         LockMode lockMode)
        Description copied from interface: LockManager
        Method to lock the object with the provided identity (mode 2).
        Specified by:
        lock in interface LockManager
        Parameters:
        id - Identity of the object
        lockMode - mode for locking
      • getLockMode

        public LockMode getLockMode​(java.lang.Object id)
        Description copied from interface: LockManager
        Accessor for what locking should be applied to the object with the specified identity (mode 2).
        Specified by:
        getLockMode in interface LockManager
        Parameters:
        id - The identity
        Returns:
        The lock mode to apply (NONE if nothing defined)
      • lock

        public void lock​(DNStateManager sm,
                         LockMode lockMode)
        Description copied from interface: LockManager
        Method to lock the object managed by the passed StateManager (mode 1).
        Specified by:
        lock in interface LockManager
        Parameters:
        sm - StateManager for the object
        lockMode - mode for locking
      • unlock

        public void unlock​(DNStateManager sm)
        Description copied from interface: LockManager
        Method to unlock the object managed by the passed StateManager (mode 1).
        Specified by:
        unlock in interface LockManager
        Parameters:
        sm - StateManager for the object
      • getLockMode

        public LockMode getLockMode​(DNStateManager sm)
        Description copied from interface: LockManager
        Accessor for the current lock mode for the object managed by the passed StateManager (mode 1).
        Specified by:
        getLockMode in interface LockManager
        Parameters:
        sm - StateManager for the object
        Returns:
        The lock mode
      • performOptimisticVersionCheck

        public void performOptimisticVersionCheck​(DNStateManager sm,
                                                  VersionStrategy versionStrategy,
                                                  java.lang.Object versionDatastore)
        Perform an optimistic version check on the passed object, against the passed version in the datastore.
        Specified by:
        performOptimisticVersionCheck in interface LockManager
        Parameters:
        sm - StateManager of the object to check
        versionStrategy - Version strategy
        versionDatastore - Version of the object in the datastore
        Throws:
        NucleusUserException - thrown when an invalid strategy is specified
        NucleusOptimisticException - thrown when the version check fails
      • getNextVersion

        public java.lang.Object getNextVersion​(VersionMetaData vermd,
                                               java.lang.Object currentVersion)
        Convenience method to provide the next version to use given the VersionMetaData and the current version.
        Specified by:
        getNextVersion in interface LockManager
        Parameters:
        currentVersion - The current version
        vermd - Version metadata
        Returns:
        The next version
        Throws:
        NucleusUserException - Thrown if the strategy is not supported.