|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.graphstream.stream.SourceBase
public abstract class SourceBase
Base implementation of an input that provide basic sink handling.
This implementation can register a set of graph sinks (or separate sets of attributes or elements sinks) and provides protected methods to easily broadcast events to all the sinks (beginning with "send").
Each time you want to produce an event toward all registered sinks, you call one of the "send*" methods with correct parameters. The parameters of the "send*" methods maps to the usual GraphStream events.
This class is "reentrant". This means that if a send*() method is called during the execution of another or the same send*() method, the event is deferred until the first send*() method is finished. This avoid recursive loops if a sink modifies the input during event handling.
Nested Class Summary | |
---|---|
static class |
SourceBase.ElementType
|
Method Summary | |
---|---|
void |
addAttributeSink(AttributeSink sink)
Add a sink for attribute events only. |
void |
addElementSink(ElementSink sink)
Add a sink for elements events only. |
void |
addSink(Sink sink)
Add a sink for all graph events (attributes and graph elements) coming from this source. |
Iterable<AttributeSink> |
attributeSinks()
|
void |
clearAttributeSinks()
Remove all listener attribute sinks. |
void |
clearElementSinks()
Remove all listener element sinks. |
void |
clearSinks()
Remove all listener sinks. |
Iterable<ElementSink> |
elementSinks()
|
void |
removeAttributeSink(AttributeSink sink)
Remove an attribute sink. |
void |
removeElementSink(ElementSink sink)
Remove an element sink. |
void |
removeSink(Sink sink)
Remove a sink. |
void |
sendAttributeChangedEvent(String sourceId,
long timeId,
String eltId,
SourceBase.ElementType eltType,
String attribute,
AbstractElement.AttributeChangeEvent event,
Object oldValue,
Object newValue)
|
void |
sendAttributeChangedEvent(String sourceId,
String eltId,
SourceBase.ElementType eltType,
String attribute,
AbstractElement.AttributeChangeEvent event,
Object oldValue,
Object newValue)
Send a add/change/remove attribute event on an element. |
void |
sendEdgeAdded(String sourceId,
long timeId,
String edgeId,
String fromNodeId,
String toNodeId,
boolean directed)
Send an "edge added" event to all element sinks. |
void |
sendEdgeAdded(String sourceId,
String edgeId,
String fromNodeId,
String toNodeId,
boolean directed)
Send an "edge added" event to all element sinks. |
void |
sendEdgeRemoved(String sourceId,
long timeId,
String edgeId)
Send a "edge removed" event to all element sinks. |
void |
sendEdgeRemoved(String sourceId,
String edgeId)
Send a "edge removed" event to all element sinks. |
void |
sendGraphCleared(String sourceId)
Send a "graph cleared" event to all element sinks. |
void |
sendGraphCleared(String sourceId,
long timeId)
Send a "graph cleared" event to all element sinks. |
void |
sendNodeAdded(String sourceId,
long timeId,
String nodeId)
Send a "node added" event to all element sinks. |
void |
sendNodeAdded(String sourceId,
String nodeId)
Send a "node added" event to all element sinks. |
void |
sendNodeRemoved(String sourceId,
long timeId,
String nodeId)
Send a "node removed" event to all element sinks. |
void |
sendNodeRemoved(String sourceId,
String nodeId)
Send a "node removed" event to all element sinks. |
void |
sendStepBegins(String sourceId,
double step)
Send a "step begins" event to all element sinks. |
void |
sendStepBegins(String sourceId,
long timeId,
double step)
Send a "step begins" event to all element sinks. |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Method Detail |
---|
public Iterable<AttributeSink> attributeSinks()
public Iterable<ElementSink> elementSinks()
public void addSink(Sink sink)
Source
addSink
in interface Source
sink
- The sink to register.public void addAttributeSink(AttributeSink sink)
Source
addAttributeSink
in interface Source
sink
- The sink to register.public void addElementSink(ElementSink sink)
Source
addElementSink
in interface Source
sink
- The sink to register.public void clearSinks()
Source
clearSinks
in interface Source
public void clearElementSinks()
Source
clearElementSinks
in interface Source
public void clearAttributeSinks()
Source
clearAttributeSinks
in interface Source
public void removeSink(Sink sink)
Source
removeSink
in interface Source
sink
- The sink to remove, if it does not exist, this is ignored
silently.public void removeAttributeSink(AttributeSink sink)
Source
removeAttributeSink
in interface Source
sink
- The sink to remove, if it does not exist, this is ignored
silently.public void removeElementSink(ElementSink sink)
Source
removeElementSink
in interface Source
sink
- The sink to remove, if it does not exist, this is ignored
silently.public void sendGraphCleared(String sourceId)
sourceId
- The source identifier.public void sendGraphCleared(String sourceId, long timeId)
sourceId
- The source identifier.timeId
- public void sendStepBegins(String sourceId, double step)
sourceId
- The graph identifier.step
- The step time stamp.public void sendStepBegins(String sourceId, long timeId, double step)
sourceId
- The graph identifier.timeId
- step
- The step time stamp.public void sendNodeAdded(String sourceId, String nodeId)
sourceId
- The source identifier.nodeId
- The node identifier.public void sendNodeAdded(String sourceId, long timeId, String nodeId)
sourceId
- The source identifier.timeId
- nodeId
- The node identifier.public void sendNodeRemoved(String sourceId, String nodeId)
sourceId
- The graph identifier.nodeId
- The node identifier.public void sendNodeRemoved(String sourceId, long timeId, String nodeId)
sourceId
- The graph identifier.timeId
- nodeId
- The node identifier.public void sendEdgeAdded(String sourceId, String edgeId, String fromNodeId, String toNodeId, boolean directed)
sourceId
- The source identifier.edgeId
- The edge identifier.fromNodeId
- The edge start node.toNodeId
- The edge end node.directed
- Is the edge directed?.public void sendEdgeAdded(String sourceId, long timeId, String edgeId, String fromNodeId, String toNodeId, boolean directed)
sourceId
- The source identifier.timeId
- edgeId
- The edge identifier.fromNodeId
- The edge start node.toNodeId
- The edge end node.directed
- Is the edge directed?.public void sendEdgeRemoved(String sourceId, String edgeId)
sourceId
- The source identifier.edgeId
- The edge identifier.public void sendEdgeRemoved(String sourceId, long timeId, String edgeId)
sourceId
- The source identifier.timeId
- edgeId
- The edge identifier.public void sendAttributeChangedEvent(String sourceId, String eltId, SourceBase.ElementType eltType, String attribute, AbstractElement.AttributeChangeEvent event, Object oldValue, Object newValue)
sourceId
- The source identifier.eltId
- The changed element identifier.eltType
- The changed element type.attribute
- The changed attribute.event
- The add/change/remove action.oldValue
- The old attribute value (null if the attribute is removed or
added).newValue
- The new attribute value (null if removed).public void sendAttributeChangedEvent(String sourceId, long timeId, String eltId, SourceBase.ElementType eltType, String attribute, AbstractElement.AttributeChangeEvent event, Object oldValue, Object newValue)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |