public <T extends Edge> T getEdgeToward(int index) { T e; elementLock.lock(); e = sg.getEdge(wrappedElement.getEdgeToward(index).getIndex()); elementLock.unlock(); return e; }
public <T extends Node> T getTargetNode() { T n; sg.elementLock.lock(); n = sg.getNode(wrappedElement.getTargetNode().getIndex()); sg.elementLock.unlock(); return n; }
public <T extends Edge> T getEdgeFrom(Node n) { T e; elementLock.lock(); e = sg.getEdge(wrappedElement.getEdgeFrom(n).getIndex()); elementLock.unlock(); return e; }
public <T extends Edge> T getEdgeBetween(String id) { T e; elementLock.lock(); e = sg.getEdge(wrappedElement.getEdgeBetween(id).getIndex()); elementLock.unlock(); return e; }
public <T extends Edge> T getLeavingEdge(int i) { T e; elementLock.lock(); e = sg.getEdge(wrappedElement.getLeavingEdge(i).getIndex()); elementLock.unlock(); return e; }
public <T extends Node> T getOpposite(Node node) { T n; if (node instanceof SynchronizedNode) node = ((SynchronizedNode) node).wrappedElement; sg.elementLock.lock(); n = sg.getNode(wrappedElement.getOpposite(node).getIndex()); sg.elementLock.unlock(); return n; }
public Collection<Edge> getEdgeSet() { ArrayList<Edge> l; Iterator<Edge> it; elementLock.lock(); l = new ArrayList<Edge>(wrappedElement.getDegree()); it = wrappedElement.getEachEdge().iterator(); while (it.hasNext()) l.add(sg.getEdge(it.next().getIndex())); elementLock.unlock(); return l; }
public Iterator<Node> getDepthFirstIterator(boolean directed) { LinkedList<Node> l = new LinkedList<Node>(); Iterator<Node> it; elementLock.lock(); sg.elementLock.lock(); it = wrappedElement.getDepthFirstIterator(); while (it.hasNext()) l.add(sg.getNode(it.next().getIndex())); sg.elementLock.unlock(); elementLock.unlock(); return l.iterator(); }
public Iterator<Node> getNeighborNodeIterator() { ArrayList<Node> l; Iterator<Node> it; elementLock.lock(); sg.elementLock.lock(); l = new ArrayList<Node>(wrappedElement.getDegree()); it = wrappedElement.getNeighborNodeIterator(); while (it.hasNext()) l.add(sg.getNode(it.next().getIndex())); sg.elementLock.unlock(); elementLock.unlock(); return l.iterator(); }