[graphl-cvs] graphl/src/org/mediavirus/graphl/graph DefaultGraph.java Node.java DefaultNode.java Gr
Status: Pre-Alpha
Brought to you by:
flo1
From: Flo L. <fl...@us...> - 2006-06-08 13:15:14
|
Update of /cvsroot/graphl/graphl/src/org/mediavirus/graphl/graph In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv17343/src/org/mediavirus/graphl/graph Modified Files: DefaultGraph.java Node.java DefaultNode.java Graph.java DefaultEdge.java Log Message: a lot of changes done a long time ago... changelog has to be updated another time :( Index: Graph.java =================================================================== RCS file: /cvsroot/graphl/graphl/src/org/mediavirus/graphl/graph/Graph.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Graph.java 18 Dec 2005 11:11:40 -0000 1.7 --- Graph.java 8 Jun 2006 13:15:00 -0000 1.8 *************** *** 43,53 **** */ List<Edge> getEdges(); public Node createNode(); ! public Node getNodeOrNew(String id); public Edge createEdge(Node from, Node to); public void addElements(Collection<Node> nodes, Collection<Edge> edges); } --- 43,55 ---- */ List<Edge> getEdges(); + List<Edge> getEdgesWithPropertyValue(String name, String value); public Node createNode(); ! public Node getNodeOrAdd(String id); public Edge createEdge(Node from, Node to); public void addElements(Collection<Node> nodes, Collection<Edge> edges); + public void deleteElements(Collection<Node> nodes, Collection<Edge> edges); } Index: DefaultGraph.java =================================================================== RCS file: /cvsroot/graphl/graphl/src/org/mediavirus/graphl/graph/DefaultGraph.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** DefaultGraph.java 18 Dec 2005 11:11:40 -0000 1.5 --- DefaultGraph.java 8 Jun 2006 13:15:00 -0000 1.6 *************** *** 1,8 **** package org.mediavirus.graphl.graph; ! import java.util.Collection; ! import java.util.Iterator; ! import java.util.List; ! import java.util.LinkedList; /** --- 1,9 ---- package org.mediavirus.graphl.graph; ! import java.util.ArrayList; ! import java.util.Collection; ! import java.util.Iterator; ! import java.util.LinkedList; ! import java.util.List; /** *************** *** 77,98 **** */ public synchronized void deleteElements(Collection<Node> nodes, Collection<Edge> edges) { if (nodes!=null) { ! Iterator iterator=nodes.iterator(); ! while (iterator.hasNext()) { ! DefaultNode node=(DefaultNode)iterator.next(); allNodes.remove(node); } } if (edges!=null) { ! Iterator iterator=edges.iterator(); while (iterator.hasNext()) { ! DefaultEdge edge=(DefaultEdge)iterator.next(); if (allEdges.remove(edge)) { ! ((DefaultNode)edge.getFrom()).notifyEdgeRemoved(edge); ! ((DefaultNode)edge.getTo()).notifyEdgeRemoved(edge); } } } ! fireElementsRemoved(nodes,edges); } /** --- 78,115 ---- */ public synchronized void deleteElements(Collection<Node> nodes, Collection<Edge> edges) { + List<Edge> nodeEdges = new ArrayList<Edge>(); if (nodes!=null) { ! Iterator<Node> nodesI=nodes.iterator(); ! while (nodesI.hasNext()) { ! Node node = nodesI.next(); ! for (Iterator<Edge> edgesI = node.getEdgesFrom().iterator(); edgesI.hasNext();) { ! Edge edge = edgesI.next(); ! if (allEdges.remove(edge)) { ! edge.getTo().notifyEdgeRemoved(edge); ! nodeEdges.add(edge); ! } ! } ! for (Iterator<Edge> edgesI = node.getEdgesTo().iterator(); edgesI.hasNext();) { ! Edge edge = edgesI.next(); ! if (allEdges.remove(edge)) { ! edge.getFrom().notifyEdgeRemoved(edge); ! nodeEdges.add(edge); ! } ! } allNodes.remove(node); } } if (edges!=null) { ! Iterator<Edge> iterator = edges.iterator(); while (iterator.hasNext()) { ! Edge edge = iterator.next(); if (allEdges.remove(edge)) { ! edge.getFrom().notifyEdgeRemoved(edge); ! edge.getTo().notifyEdgeRemoved(edge); } } } ! nodeEdges.addAll(edges); ! fireElementsRemoved(nodes,nodeEdges); } /** *************** *** 114,118 **** * Overrides @see org.mediavirus.graphl.graph.Graph#getNodeOrNew(java.lang.String) */ ! public Node getNodeOrNew(String id){ return new DefaultNode(); } --- 131,135 ---- * Overrides @see org.mediavirus.graphl.graph.Graph#getNodeOrNew(java.lang.String) */ ! public Node getNodeOrAdd(String id){ return new DefaultNode(); } *************** *** 123,125 **** --- 140,154 ---- return new DefaultEdge(from, to); } + + public List<Edge> getEdgesWithPropertyValue(String name, String value) { + List<Edge> result = new ArrayList<Edge>(); + for (Iterator<Edge> edgesI = allEdges.iterator(); edgesI.hasNext();) { + Edge edge = edgesI.next(); + if (value.equals(edge.getProperty(name))) { + result.add(edge); + } + + } + return result; + } } Index: DefaultNode.java =================================================================== RCS file: /cvsroot/graphl/graphl/src/org/mediavirus/graphl/graph/DefaultNode.java,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** DefaultNode.java 18 Dec 2005 11:11:40 -0000 1.17 --- DefaultNode.java 8 Jun 2006 13:15:00 -0000 1.18 *************** *** 199,233 **** } public List<Node> getNeighbours(String edgeType, boolean forwardOnly) { ! List<Node> nodes = new ArrayList<Node>(2); ! Iterator<Edge> allEdges = edgesFrom.iterator(); ! while (allEdges.hasNext()) { ! Edge edge = allEdges.next(); ! if (edgeType.equals(edge.getType())) nodes.add(edge.getTo()); ! } ! if (!forwardOnly) { ! allEdges = edgesTo.iterator(); ! while (allEdges.hasNext()) { ! Edge edge = allEdges.next(); ! if (edgeType.equals(edge.getType())) nodes.add(edge.getFrom()); ! } ! } ! return nodes; } public Node getFirstNeighbour(String edgeType, boolean forwardOnly) { ! Iterator<Edge> allEdges = edgesFrom.iterator(); ! while (allEdges.hasNext()) { ! Edge edge = allEdges.next(); ! if (edgeType.equals(edge.getType())) return edge.getTo(); ! } ! if (!forwardOnly) { ! allEdges = edgesTo.iterator(); ! while (allEdges.hasNext()) { ! Edge edge = allEdges.next(); ! if (edgeType.equals(edge.getType())) return edge.getFrom(); ! } ! } ! return null; } --- 199,252 ---- } + public List<Node> getNeighbours(String edgeType, int direction) { + + List<Node> nodes = new ArrayList<Node>(2); + Iterator<Edge> allEdges; + + if (direction == Node.FORWARD || direction == Node.BOTH ){ + allEdges = edgesFrom.iterator(); + while (allEdges.hasNext()) { + Edge edge = allEdges.next(); + if (edgeType.equals(edge.getType())) nodes.add(edge.getTo()); + } + } + if (direction == Node.REVERSE || direction == Node.BOTH ) { + allEdges = edgesTo.iterator(); + while (allEdges.hasNext()) { + Edge edge = allEdges.next(); + if (edgeType.equals(edge.getType())) nodes.add(edge.getFrom()); + } + } + return nodes; + + } + + public Node getFirstNeighbour(String edgeType, int direction) { + + Iterator<Edge> allEdges; + + if (direction == Node.FORWARD || direction == Node.BOTH ){ + allEdges = edgesFrom.iterator(); + while (allEdges.hasNext()) { + Edge edge = allEdges.next(); + if (edgeType.equals(edge.getType())) return edge.getTo(); + } + } + if (direction == Node.REVERSE || direction == Node.BOTH ) { + allEdges = edgesTo.iterator(); + while (allEdges.hasNext()) { + Edge edge = allEdges.next(); + if (edgeType.equals(edge.getType())) return edge.getFrom(); + } + } + return null; + } + public List<Node> getNeighbours(String edgeType, boolean forwardOnly) { ! return getNeighbours(edgeType, forwardOnly ? Node.FORWARD : Node.BOTH); } public Node getFirstNeighbour(String edgeType, boolean forwardOnly) { ! return getFirstNeighbour(edgeType, forwardOnly ? Node.FORWARD : Node.BOTH); } Index: Node.java =================================================================== RCS file: /cvsroot/graphl/graphl/src/org/mediavirus/graphl/graph/Node.java,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** Node.java 18 Dec 2005 11:11:40 -0000 1.13 --- Node.java 8 Jun 2006 13:15:00 -0000 1.14 *************** *** 26,31 **** --- 26,44 ---- List<Edge> getEdgesTo(String type); + /** + * @deprecated + */ List<Node> getNeighbours(String edgeType, boolean forwardOnly); + + public static final int BOTH = 0; + public static final int FORWARD = 1; + public static final int REVERSE = 2; + List<Node> getNeighbours(String edgeType, int direction); + + /** + * @deprecated + */ Node getFirstNeighbour(String edgeType, boolean forwardOnly); + Node getFirstNeighbour(String edgeType, int direction); //TODO (3, 4h) there should be a NodeView interface that covers the visual aspects of a node. merge with NodeMovement class. *************** *** 104,107 **** --- 117,122 ---- void invertPin(Edge edge); + + public void notifyEdgeRemoved(Edge edge); } Index: DefaultEdge.java =================================================================== RCS file: /cvsroot/graphl/graphl/src/org/mediavirus/graphl/graph/DefaultEdge.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** DefaultEdge.java 18 Dec 2005 11:11:40 -0000 1.15 --- DefaultEdge.java 8 Jun 2006 13:15:00 -0000 1.16 *************** *** 170,174 **** */ public String getSource() { ! return source; } --- 170,174 ---- */ public String getSource() { ! return getProperty(NS.graphl + "definedIn"); } *************** *** 177,181 **** */ public void setSource(String source) { ! this.source = source; } --- 177,181 ---- */ public void setSource(String source) { ! setProperty(NS.graphl + "definedIn", source); } |