public void readData(XMLStreamReader reader, GraphModel graphModel, LegacyMapHelper helper) throws XMLStreamException { Graph graph = graphModel.getGraph(); boolean end = false; while (reader.hasNext() && !end) { Integer eventType = reader.next(); if (eventType.equals(XMLEvent.START_ELEMENT)) { String name = reader.getLocalName(); if (ELEMENT_NODEDATA.equalsIgnoreCase(name)) { Node node = graph.getNode(helper.preToIdMap.get(reader.getAttributeValue(null, "nodepre"))); readNodeData(reader, node); } else if (ELEMENT_EDGEDATA.equalsIgnoreCase(name)) { Node source = graph.getNode(helper.preToIdMap.get(reader.getAttributeValue(null, "sourcepre"))); Node target = graph.getNode(helper.preToIdMap.get(reader.getAttributeValue(null, "targetpre"))); Edge edge = graph.getEdge(source, target, 0); readEdgeData(reader, edge); } } else if (eventType.equals(XMLStreamReader.END_ELEMENT)) { if (ELEMENT_DATA.equalsIgnoreCase(reader.getLocalName())) { end = true; } } } }
@Override public Graph filter(Subgraph[] graphs) { if (graphs.length > 1) { throw new IllegalArgumentException("Not Filter accepts a single graph in parameter"); } Graph graph = graphs[0]; Graph mainGraph = graph.getView().getGraphModel().getGraph(); for (Edge e : mainGraph.getEdges()) { Node source = e.getSource(); Node target = e.getTarget(); if (graph.contains(source) && graph.contains(target)) { Edge edgeInGraph = graph.getEdge(source, target, e.getType()); if (edgeInGraph == null) { //The edge is not in graph graph.addEdge(e); } else { //The edge is in the graph graph.removeEdge(edgeInGraph); } } } return graph; }
@Override public Graph filter(Subgraph[] graphs) { if (graphs.length > 1) { throw new IllegalArgumentException("Not Filter accepts a single graph in parameter"); } Graph graph = graphs[0]; Graph mainGraph = graph.getView().getGraphModel().getGraph(); for (Node n : mainGraph.getNodes().toArray()) { if (!graph.contains(n)) { //The node n is not in graph graph.addNode(n); } else { //The node n is in graph graph.removeNode(n); } } for (Edge e : mainGraph.getEdges()) { Node source = e.getSource(); Node target = e.getTarget(); if (graph.contains(source) && graph.contains(target)) { Edge edgeInGraph = graph.getEdge(source, target, e.getType()); if (edgeInGraph == null) { graph.addEdge(e); } } } return graph; }
public void readRows(XMLStreamReader reader, GraphModel graphModel, LegacyMapHelper mapHelper) throws XMLStreamException { Graph graph = graphModel.getGraph(); boolean end = false; while (reader.hasNext() && !end) { int type = reader.next(); switch (type) { case XMLStreamReader.START_ELEMENT: String name = reader.getLocalName(); if (ELEMENT_NODE_ROW.equalsIgnoreCase(name)) { String id = reader.getAttributeValue(null, "for"); Node node = graph.getNode(id); readRow(reader, node, graphModel.getNodeTable(), mapHelper); } else if (ELEMENT_EDGE_ROW.equalsIgnoreCase(name)) { String id = reader.getAttributeValue(null, "for"); Edge edge = graph.getEdge(id); readRow(reader, edge, graphModel.getEdgeTable(), mapHelper); } break; case XMLStreamReader.END_ELEMENT: if (ELEMENT_ROWS.equalsIgnoreCase(reader.getLocalName())) { end = true; } break; } } }
if (n != m && graph.getEdge(n, m) == null) { Edge e = graphModel.factory().newEdge(n, m); graph.addEdge(e);
if (graph.getEdge(newEdgeSource, newEdgeTarget) != null) {