|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object de.grogra.graph.GraphBase
public abstract class GraphBase
Nested Class Summary | |
---|---|
protected class |
GraphBase.State
|
Nested classes/interfaces inherited from interface de.grogra.util.Lockable |
---|
Lockable.DeadLockException |
Field Summary |
---|
Fields inherited from interface de.grogra.graph.Graph |
---|
BRANCH_EDGE, CONTAINMENT_EDGE, CONTAINMENT_END_EDGE, EDGENODE_IN_EDGE, EDGENODE_OUT_EDGE, ELLIPSE_SYMBOL, MAIN_GRAPH, MARK_EDGE, MIN_NORMAL_BIT_INDEX, MIN_UNUSED_EDGE, MIN_UNUSED_EDGE_BIT, NOTIFIES_EDGE, PERSISTENT, PERSISTENT_DELETED, RECTANGLE_SYMBOL, REFINEMENT_EDGE, RHOMBUS_SYMBOL, ROUND_RECTANGLE_SYMBOL, SPECIAL_EDGE_MASK, SPECIAL_EDGE_OF_SOURCE_BIT, STD_EDGE_5, STD_EDGE_6, SUCCESSOR_EDGE, TRANSIENT |
Constructor Summary | |
---|---|
GraphBase(Lockable lockable)
|
Method Summary | |
---|---|
void |
addAttributeChangeListener(AttributeChangeListener l)
|
void |
addAttributeChangeListener(java.lang.Object object,
boolean asNode,
AttributeChangeListener l)
|
void |
addChangeBoundaryListener(ChangeBoundaryListener l)
|
void |
addEdgeChangeListener(EdgeChangeListener l)
|
void |
addEdgeChangeListener(java.lang.Object object,
boolean asNode,
EdgeChangeListener l)
|
protected abstract GraphBase.State |
createMainState()
|
void |
execute(LockProtectedRunnable task,
boolean write)
Asynchronously executes a task such that it possesses
a lock on this Lockable . |
void |
execute(LockProtectedRunnable task,
Lock retained)
Asynchronously executes a task using a lock which
has been retained before within another task. |
void |
executeForcedly(LockProtectedRunnable task,
boolean write)
Synchronously executes a task such that it possesses
a lock on this Lockable . |
void |
executeForcedly(LockProtectedRunnable task,
Lock retained)
Synchronously executes a task using a lock which
has been retained before within another task. |
GraphState |
getMainState()
Returns the main graph state. |
long |
getMaxWaitingTime()
Returns the waiting time of the pending task which is waiting longest, or -1 if there is no pending task. |
int |
getQueueLength()
Returns the current number of tasks which are waiting for locked execution. |
java.util.Map |
getStateMap()
|
protected void |
init()
|
boolean |
isLocked(boolean write)
Determines if the current thread has a lock for this Lockable . |
void |
removeAttributeChangeListener(AttributeChangeListener l)
|
void |
removeAttributeChangeListener(java.lang.Object object,
boolean asNode,
AttributeChangeListener l)
|
void |
removeChangeBoundaryListener(ChangeBoundaryListener l)
|
void |
removeEdgeChangeListener(EdgeChangeListener l)
|
void |
removeEdgeChangeListener(java.lang.Object object,
boolean asNode,
EdgeChangeListener l)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface de.grogra.graph.Graph |
---|
accept, createBooleanMap, createObjectMap, getAccessor, getAttributes, getColor, getDependent, getDescription, getEdgeBits, getFirstEdge, getId, getInstantiator, getLifeCycleState, getName, getNextEdge, getNodeForId, getObjectForName, getParentAttribute, getRoot, getRootKeys, getSourceNode, getSpecialEdgeDescriptors, getStamp, getSymbol, getTargetNode, getTreePattern |
Constructor Detail |
---|
public GraphBase(Lockable lockable)
Method Detail |
---|
public void addAttributeChangeListener(AttributeChangeListener l)
addAttributeChangeListener
in interface Graph
public void addAttributeChangeListener(java.lang.Object object, boolean asNode, AttributeChangeListener l)
addAttributeChangeListener
in interface Graph
public void addChangeBoundaryListener(ChangeBoundaryListener l)
addChangeBoundaryListener
in interface Graph
public void addEdgeChangeListener(EdgeChangeListener l)
addEdgeChangeListener
in interface Graph
public void addEdgeChangeListener(java.lang.Object object, boolean asNode, EdgeChangeListener l)
addEdgeChangeListener
in interface Graph
protected abstract GraphBase.State createMainState()
public void execute(LockProtectedRunnable task, boolean write)
Lockable
task
such that it possesses
a lock on this Lockable
. Note that the execution
is asynchronous, so that the thread in which
the task will actually be executed may differ from the current thread.
execute
in interface Lockable
task
- the task to executewrite
- shall a write lock be obtained?public void execute(LockProtectedRunnable task, Lock retained)
Lockable
task
using a lock which
has been retained before within another task.
Note that the execution
is asynchronous, so that the thread in which
the task will actually be executed may differ from the current thread.
execute
in interface Lockable
task
- the task to executeretained
- the previously retained lockLock.retain()
public void executeForcedly(LockProtectedRunnable task, boolean write) throws java.lang.InterruptedException, Lockable.DeadLockException
Lockable
task
such that it possesses
a lock on this Lockable
. The execution
is performed in the current thread.
executeForcedly
in interface Lockable
task
- the task to executewrite
- shall a write lock be obtained?
java.lang.InterruptedException
Lockable.DeadLockException
public void executeForcedly(LockProtectedRunnable task, Lock retained) throws java.lang.InterruptedException
Lockable
task
using a lock which
has been retained before within another task. The execution
is performed in the current thread.
executeForcedly
in interface Lockable
task
- the task to executeretained
- the previously retained lock
java.lang.InterruptedException
Lock.retain()
public GraphState getMainState()
Graph
getMainState
in interface Graph
Graph
public long getMaxWaitingTime()
Lockable
-1
if there is no pending task.
getMaxWaitingTime
in interface Lockable
public int getQueueLength()
Lockable
getQueueLength
in interface Lockable
public java.util.Map getStateMap()
getStateMap
in interface Graph
protected void init()
public boolean isLocked(boolean write)
Lockable
Lockable
.
isLocked
in interface Lockable
write
- check for write locks only (true
)
or for both read and write locks (false
)
true
if the current thread has a lockpublic void removeAttributeChangeListener(AttributeChangeListener l)
removeAttributeChangeListener
in interface Graph
public void removeAttributeChangeListener(java.lang.Object object, boolean asNode, AttributeChangeListener l)
removeAttributeChangeListener
in interface Graph
public void removeChangeBoundaryListener(ChangeBoundaryListener l)
removeChangeBoundaryListener
in interface Graph
public void removeEdgeChangeListener(EdgeChangeListener l)
removeEdgeChangeListener
in interface Graph
public void removeEdgeChangeListener(java.lang.Object object, boolean asNode, EdgeChangeListener l)
removeEdgeChangeListener
in interface Graph
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |