de.grogra.graph
public abstract class GraphBase extends java.lang.Object implements Graph
| Modifier and Type | Class and Description |
|---|---|
protected class |
GraphBase.State |
Lockable.DeadLockExceptionBRANCH_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| Modifier and Type | Method and Description |
|---|---|
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) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitaccept, createBooleanMap, createObjectMap, getAccessor, getAttributes, getColor, getDependent, getDescription, getEdgeBits, getFirstEdge, getId, getInstantiator, getLifeCycleState, getName, getNextEdge, getNodeForId, getObjectForName, getParentAttribute, getRoot, getRootKeys, getSourceNode, getSpecialEdgeDescriptors, getStamp, getSymbol, getTargetNode, getTreePatternpublic GraphBase(Lockable lockable)
public void addAttributeChangeListener(AttributeChangeListener l)
addAttributeChangeListener in interface Graphpublic void addAttributeChangeListener(java.lang.Object object,
boolean asNode,
AttributeChangeListener l)
addAttributeChangeListener in interface Graphpublic void addChangeBoundaryListener(ChangeBoundaryListener l)
addChangeBoundaryListener in interface Graphpublic void addEdgeChangeListener(EdgeChangeListener l)
addEdgeChangeListener in interface Graphpublic void addEdgeChangeListener(java.lang.Object object,
boolean asNode,
EdgeChangeListener l)
addEdgeChangeListener in interface Graphprotected abstract GraphBase.State createMainState()
public void execute(LockProtectedRunnable task, boolean write)
Lockabletask 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.public void execute(LockProtectedRunnable task, Lock retained)
Lockabletask 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 Lockabletask - the task to executeretained - the previously retained lockLock.retain()public void executeForcedly(LockProtectedRunnable task, boolean write) throws java.lang.InterruptedException, Lockable.DeadLockException
Lockabletask such that it possesses
a lock on this Lockable. The execution
is performed in the current thread.executeForcedly in interface Lockabletask - the task to executewrite - shall a write lock be obtained?java.lang.InterruptedExceptionLockable.DeadLockExceptionpublic void executeForcedly(LockProtectedRunnable task, Lock retained) throws java.lang.InterruptedException
Lockabletask using a lock which
has been retained before within another task. The execution
is performed in the current thread.executeForcedly in interface Lockabletask - the task to executeretained - the previously retained lockjava.lang.InterruptedExceptionLock.retain()public GraphState getMainState()
GraphgetMainState in interface GraphGraphpublic long getMaxWaitingTime()
Lockable-1 if there is no pending task.getMaxWaitingTime in interface Lockablepublic int getQueueLength()
LockablegetQueueLength in interface Lockablepublic java.util.Map getStateMap()
getStateMap in interface Graphprotected void init()
public boolean isLocked(boolean write)
LockableLockable.public void removeAttributeChangeListener(AttributeChangeListener l)
removeAttributeChangeListener in interface Graphpublic void removeAttributeChangeListener(java.lang.Object object,
boolean asNode,
AttributeChangeListener l)
removeAttributeChangeListener in interface Graphpublic void removeChangeBoundaryListener(ChangeBoundaryListener l)
removeChangeBoundaryListener in interface Graphpublic void removeEdgeChangeListener(EdgeChangeListener l)
removeEdgeChangeListener in interface Graphpublic void removeEdgeChangeListener(java.lang.Object object,
boolean asNode,
EdgeChangeListener l)
removeEdgeChangeListener in interface Graph