Package org.glassfish.pfl.basic.graph
Class GraphImpl<T extends Node<T>>
- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractSet<T>
-
- org.glassfish.pfl.basic.graph.GraphImpl<T>
-
- Type Parameters:
T
- The type of a Node in the graph, which must extend Node.
- All Implemented Interfaces:
java.lang.Iterable<T>
,java.util.Collection<T>
,java.util.Set<T>
,Graph<T>
public class GraphImpl<T extends Node<T>> extends java.util.AbstractSet<T> implements Graph<T>
Implementation of a simple graph.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static interface
GraphImpl.NodeVisitor<T extends Node>
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<T,NodeData>
nodeToData
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
add(T obj)
private void
clearNodeData()
private java.util.Set<T>
collectRootSet()
NodeData
getNodeData(T node)
java.util.Set<T>
getRoots()
java.util.Iterator<T>
iterator()
private void
markNonRoots()
int
size()
(package private) void
visitAll(GraphImpl.NodeVisitor<T> nv)
-
Methods inherited from class java.util.AbstractCollection
addAll, clear, contains, containsAll, isEmpty, remove, retainAll, toArray, toArray, toString
-
-
-
-
Constructor Detail
-
GraphImpl
public GraphImpl()
-
GraphImpl
public GraphImpl(java.util.Collection<T> coll)
-
-
Method Detail
-
add
public boolean add(T obj)
-
iterator
public java.util.Iterator<T> iterator()
-
size
public int size()
-
getNodeData
public NodeData getNodeData(T node)
- Specified by:
getNodeData
in interfaceGraph<T extends Node<T>>
-
clearNodeData
private void clearNodeData()
-
visitAll
void visitAll(GraphImpl.NodeVisitor<T> nv)
-
markNonRoots
private void markNonRoots()
-
collectRootSet
private java.util.Set<T> collectRootSet()
-
-