Class LockedObject

java.lang.Object
nl.info.webdav.locking.LockedObject

public class LockedObject extends Object
a helper class for ResourceLocks, represents the Locks
  • Field Details

    • _lockDepth

      protected int _lockDepth
      Describing the depth of a locked collection. If the locked resource is not a collection, depth is 0 / doesn't matter.
    • _expiresAt

      protected long _expiresAt
      Describing the timeout of a locked object (ms)
    • _owner

      protected String[] _owner
      owner of the lock. shared locks can have multiple owners. is null if no owner is present
    • _children

      protected LockedObject[] _children
      children of that lock
    • _parent

      protected LockedObject _parent
    • _exclusive

      protected boolean _exclusive
      weather the lock is exclusive or not. if owner=null the exclusive value doesn't matter
    • _type

      protected String _type
      weather the lock is a write or read lock
  • Constructor Details

    • LockedObject

      public LockedObject(ResourceLocks resourceLocks, String path, boolean isTemporary)
      Parameters:
      resourceLocks - the resourceLocks where locks are stored
      path - the path to the locked object
      isTemporary - indicates if the LockedObject should be temporary or not
  • Method Details

    • addLockedObjectOwner

      public boolean addLockedObjectOwner(String owner)
      adds a new owner to a lock
      Parameters:
      owner - string that represents the owner
      Returns:
      true if the owner was added, false otherwise
    • removeLockedObjectOwner

      public void removeLockedObjectOwner(String owner)
      tries to remove the owner from the lock
      Parameters:
      owner - string that represents the owner
    • addChild

      public void addChild(LockedObject newChild)
      adds a new child lock to this lock
      Parameters:
      newChild - new child
    • removeLockedObject

      public void removeLockedObject()
      deletes this Lock object. assumes that it has no children and no owners (does not check this itself)
    • removeTempLockedObject

      public void removeTempLockedObject()
      deletes this Lock object. assumes that it has no children and no owners (does not check this itself)
    • checkLocks

      public boolean checkLocks(boolean exclusive, int depth)
      checks if a lock of the given exclusivity can be placed, only considering children up to "depth"
      Parameters:
      exclusive - wheather the new lock should be exclusive
      depth - the depth to which should be checked
      Returns:
      true if the lock can be placed
    • refreshTimeout

      public void refreshTimeout(int timeout)
      Sets a new timeout for the LockedObject
      Parameters:
      timeout -
    • getTimeoutMillis

      public long getTimeoutMillis()
      Gets the timeout for the LockedObject
      Returns:
      timeout
    • hasExpired

      public boolean hasExpired()
      Return true if the lock has expired.
      Returns:
      true if timeout has passed
    • getID

      public String getID()
      Gets the LockID (locktoken) for the LockedObject
      Returns:
      locktoken
    • getOwner

      public String[] getOwner()
      Gets the owners for the LockedObject
      Returns:
      owners
    • getPath

      public String getPath()
      Gets the path for the LockedObject
      Returns:
      path
    • setExclusive

      public void setExclusive(boolean exclusive)
      Sets the exclusivity for the LockedObject
      Parameters:
      exclusive -
    • isExclusive

      public boolean isExclusive()
      Gets the exclusivity for the LockedObject
      Returns:
      exclusivity
    • isShared

      public boolean isShared()
      Gets the exclusivity for the LockedObject
      Returns:
      exclusivity
    • getType

      public String getType()
      Gets the type of the lock
      Returns:
      type
    • getLockDepth

      public int getLockDepth()
      Gets the depth of the lock
      Returns:
      depth