org.jboss.cache.lock
Class LockMap

java.lang.Object
  extended by org.jboss.cache.lock.LockMap

public class LockMap
extends Object

Provide lock ownership mapping.

Version:
$Id: LockMap.java 5386 2008-03-05 12:36:31Z manik.surtani@jboss.com $
Author:
Ben Wang

Field Summary
static int OWNER_ANY
           
static int OWNER_READ
           
static int OWNER_WRITE
           
 
Constructor Summary
LockMap()
           
LockMap(Collection<Object> readOwners)
          This constructor is made available for testing with different collection types for the readOwners collection.
 
Method Summary
 void addReader(Object owner)
          Adding a reader owner.
 boolean isOwner(Object caller, int ownership)
          Check whether this owner has reader or writer ownership.
 boolean isReadLocked()
           
 String printInfo()
          Debugging information.
 Collection<Object> readerOwners()
          Returns an unmodifiable set of reader owner objects.
 void releaseReaderOwners(LockStrategy lock)
           
 void removeAll()
          Remove all ownership.
 void removeReader(Object owner)
          Remove reader ownership.
 void removeWriter()
          Remove writer ownership.
 void setWriterIfNotNull(Object owner)
          Adding a writer owner.
 boolean upgrade(Object owner)
          Upgrading current reader ownership to writer one.
 Object writerOwner()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

OWNER_ANY

public static final int OWNER_ANY
See Also:
Constant Field Values

OWNER_READ

public static final int OWNER_READ
See Also:
Constant Field Values

OWNER_WRITE

public static final int OWNER_WRITE
See Also:
Constant Field Values
Constructor Detail

LockMap

public LockMap()

LockMap

public LockMap(Collection<Object> readOwners)
This constructor is made available for testing with different collection types for the readOwners collection.

Parameters:
readOwners -
Method Detail

isOwner

public boolean isOwner(Object caller,
                       int ownership)
Check whether this owner has reader or writer ownership.

Parameters:
caller - the potential owner. Cannot be null.
ownership - Either OWNER_ANY, OWNER_READ, or OWNER_WRITE.
Returns:
Throws:
NullPointerException - if caller is null.

addReader

public void addReader(Object owner)
Adding a reader owner.

Parameters:
owner -

setWriterIfNotNull

public void setWriterIfNotNull(Object owner)
Adding a writer owner.

Parameters:
owner -

upgrade

public boolean upgrade(Object owner)
                throws OwnerNotExistedException
Upgrading current reader ownership to writer one.

Parameters:
owner -
Returns:
True if successful.
Throws:
OwnerNotExistedException

readerOwners

public Collection<Object> readerOwners()
Returns an unmodifiable set of reader owner objects.


releaseReaderOwners

public void releaseReaderOwners(LockStrategy lock)

writerOwner

public Object writerOwner()
Returns:
Writer owner object. Null if none.

removeReader

public void removeReader(Object owner)
Remove reader ownership.


removeWriter

public void removeWriter()
Remove writer ownership.


removeAll

public void removeAll()
Remove all ownership.


printInfo

public String printInfo()
Debugging information.

Returns:

isReadLocked

public boolean isReadLocked()


Copyright © 2008 JBoss, a division of Red Hat. All Rights Reserved.