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
,Runnable
,ReadWriteLock
public abstract class AbstractReadWriteLockOperation
extends AbstractOperation
implements 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
ConstructorsConstructorDescriptionDefault constructor using a reentrant read/write lock.AbstractReadWriteLockOperation
(ReadWriteLock readWriteLock) Read write lock constructor. -
Method Summary
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 Details
-
AbstractReadWriteLockOperation
public AbstractReadWriteLockOperation()Default constructor using a reentrant read/write lock. -
AbstractReadWriteLockOperation
Read write lock constructor.- Parameters:
readWriteLock
- The lock for controlling access to the properties.- Throws:
NullPointerException
- if the given lock isnull
.
-
-
Method Details
-
readLock
Returns the lock used for reading.- Specified by:
readLock
in interfaceReadWriteLock
- Returns:
- the lock used for reading.
-
writeLock
Returns the lock used for writing.- Specified by:
writeLock
in interfaceReadWriteLock
- Returns:
- the lock used for writing.
-
getState
- Specified by:
getState
in interfaceTask
- Overrides:
getState
in classAbstractTask
- Returns:
- The current state of the task.
-
setState
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:
-