Package com.globalmentor.model
Class AbstractReadWriteLockOperation
- java.lang.Object
-
- com.globalmentor.beans.BoundPropertyObject
-
- com.globalmentor.model.AbstractTask
-
- com.globalmentor.model.AbstractOperation
-
- com.globalmentor.model.AbstractReadWriteLockOperation
-
- All Implemented Interfaces:
PropertyBindable
,PropertyConstrainable
,Operation
,Task
,java.lang.Runnable
,java.util.concurrent.locks.ReadWriteLock
public abstract class AbstractReadWriteLockOperation extends AbstractOperation implements java.util.concurrent.locks.ReadWriteLock
Abstract implementation of some operation that can be executed, with state governed by a read/write lock.This implementation is thread-safe, providing its own read/write lock. The state is governed by this read/write lock, which can also be used for locking other operation resources.
- Author:
- Garret Wilson
-
-
Field Summary
-
Fields inherited from class com.globalmentor.beans.BoundPropertyObject
NO_PROPERTY_CHANGE_LISTENERS, NO_VETOABLE_CHANGE_LISTENERS
-
Fields inherited from interface com.globalmentor.model.Task
STATE_PROPERTY
-
-
Constructor Summary
Constructors Constructor Description AbstractReadWriteLockOperation()
Default constructor using a reentrant read/write lock.AbstractReadWriteLockOperation(java.util.concurrent.locks.ReadWriteLock readWriteLock)
Read write lock constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description TaskState
getState()
java.util.concurrent.locks.Lock
readLock()
Returns the lock used for reading.void
setState(TaskState newState)
Sets the current state of the task.java.util.concurrent.locks.Lock
writeLock()
Returns the lock used for writing.-
Methods inherited from class com.globalmentor.model.AbstractOperation
cancel, execute, initialize, isCanceled, run
-
Methods inherited from class com.globalmentor.model.AbstractTask
getEventListenerManager
-
Methods inherited from class com.globalmentor.beans.BoundPropertyObject
addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, addVetoableChangeListener, createPostponedPropertyChangeEvent, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, fireVetoableChange, fireVetoableChange, fireVetoableChange, getForwardPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, getPropertyChangeSupport, getRepeatPropertyChangeListener, getRepeatVetoableChangeListener, getVetoableChangeListeners, getVetoableChangeListeners, getVetoableChangeSupport, hasPropertyChangeListeners, hasVetoableChangeListeners, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, removeVetoableChangeListener
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.globalmentor.beans.PropertyBindable
addPropertyChangeListener, addPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, hasPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListener
-
Methods inherited from interface com.globalmentor.beans.PropertyConstrainable
addVetoableChangeListener, addVetoableChangeListener, getVetoableChangeListeners, getVetoableChangeListeners, hasVetoableChangeListeners, removeVetoableChangeListener, removeVetoableChangeListener
-
-
-
-
Constructor Detail
-
AbstractReadWriteLockOperation
public AbstractReadWriteLockOperation()
Default constructor using a reentrant read/write lock.
-
AbstractReadWriteLockOperation
public AbstractReadWriteLockOperation(java.util.concurrent.locks.ReadWriteLock readWriteLock)
Read write lock constructor.- Parameters:
readWriteLock
- The lock for controlling access to the properties.- Throws:
java.lang.NullPointerException
- if the given lock isnull
.
-
-
Method Detail
-
readLock
public java.util.concurrent.locks.Lock readLock()
Returns the lock used for reading.- Specified by:
readLock
in interfacejava.util.concurrent.locks.ReadWriteLock
- Returns:
- the lock used for reading.
-
writeLock
public java.util.concurrent.locks.Lock writeLock()
Returns the lock used for writing.- Specified by:
writeLock
in interfacejava.util.concurrent.locks.ReadWriteLock
- Returns:
- the lock used for writing.
-
getState
public TaskState getState()
- Specified by:
getState
in interfaceTask
- Overrides:
getState
in classAbstractTask
- Returns:
- The current state of the task.
-
setState
public void setState(TaskState newState)
Description copied from class:AbstractTask
Sets the current state of the task. This is a bound property.- Overrides:
setState
in classAbstractTask
- Parameters:
newState
- The new state of the task.- See Also:
Task.STATE_PROPERTY
-
-