net.sf.webdav.locking
Class LockedObject

java.lang.Object
  extended by net.sf.webdav.locking.LockedObject

public class LockedObject
extends Object

a helper class for ResourceLocks, represents the Locks

Author:
re

Field Summary
protected  LockedObject[] _children
          children of that lock
protected  boolean _exclusive
          weather the lock is exclusive or not.
protected  long _expiresAt
          Describing the timeout of a locked object (ms)
protected  int _lockDepth
          Describing the depth of a locked collection.
protected  String[] _owner
          owner of the lock.
protected  LockedObject _parent
           
protected  String _type
          weather the lock is a write or read lock
 
Constructor Summary
LockedObject(ResourceLocks resLocks, String path, boolean temporary)
           
 
Method Summary
 void addChild(LockedObject newChild)
          adds a new child lock to this lock
 boolean addLockedObjectOwner(String owner)
          adds a new owner to a lock
 boolean checkLocks(boolean exclusive, int depth)
          checks if a lock of the given exclusivity can be placed, only considering children up to "depth"
 String getID()
          Gets the LockID (locktoken) for the LockedObject
 int getLockDepth()
          Gets the depth of the lock
 String[] getOwner()
          Gets the owners for the LockedObject
 String getPath()
          Gets the path for the LockedObject
 long getTimeoutMillis()
          Gets the timeout for the LockedObject
 String getType()
          Gets the type of the lock
 boolean hasExpired()
          Return true if the lock has expired.
 boolean isExclusive()
          Gets the exclusivity for the LockedObject
 boolean isShared()
          Gets the exclusivity for the LockedObject
 void refreshTimeout(int timeout)
          Sets a new timeout for the LockedObject
 void removeLockedObject()
          deletes this Lock object.
 void removeLockedObjectOwner(String owner)
          tries to remove the owner from the lock
 void removeTempLockedObject()
          deletes this Lock object.
 void setExclusive(boolean exclusive)
          Sets the exclusivity for the LockedObject
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_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 Detail

LockedObject

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

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


Copyright © 2013 KnowledgePlaza. All Rights Reserved.