/** * DOCUMENT ME! * * @return DOCUMENT ME! */ public final Edge[] getRestoredEdges() { final Edge[] returnThis = new Edge[m_restoredEdgeInx.length]; for (int i = 0; i < returnThis.length; i++) returnThis[i] = m_persp.getRootGraph().getEdge(m_restoredEdgeInx[i]); return returnThis; }
if (root.getIndex(root.getEdge(edgeInx[3])) != edgeInx[3]) throw new IllegalStateException("wrong edge index"); if ((root.getEdge(minEdgeInx - 1) != null) || (root.getEdge(0) != null) || (root.getEdge(37) != null)) throw new IllegalStateException("not null"); if ((root.getEdge(Integer.MIN_VALUE) != null) || (root.getEdge(Integer.MAX_VALUE) != null)) throw new IllegalStateException("not null"); || root.isMetaParent(root.getEdge(edgeInx[1]), root.getNode(nodeInx[1])) || root.isMetaParent(root.getEdge(edgeInx[6]), root.getNode(nodeInx[2]))) throw new IllegalStateException("wrong edge meta relationships"); if (root.isMetaParent(root.getEdge(edgeInx[1]), root.getNode(nodeInx[3]))) throw new IllegalStateException("wrong edge meta relationships"); if (!(root.isMetaParent(root.getEdge(edgeInx[0]), root.getNode(nodeInx[3])) && root.isMetaParent(root.getEdge(edgeInx[2]), root.getNode(nodeInx[4])))) throw new IllegalStateException("missing edge meta relationship"); nodesList = root.metaParentsList(root.getEdge(edgeInx[6])); || root.isMetaChild(root2Node, root.getEdge(edgeInx[0]))) throw new IllegalStateException("child with other graph's elements"); if (root.isMetaChild(root.getNode(nodeInx[1]), root.getEdge(edgeInx[2])) || root.isMetaChild(root.getNode(nodeInx[4]), root.getEdge(edgeInx[4]))) throw new IllegalStateException("reported wrong meta relationship");
final Edge root2Edge = (Edge) root2.edgesIterator().next(); final Node nodeNotInPersp = root.getNode(root.createNode()); final Edge edge1NotInPersp = root.getEdge(root.createEdge(nodeInx[1], nodeInx[3], true)); final Edge edge2NotInPersp = root.getEdge(root.createEdge(nodeInx[2], nodeNotInPersp.getRootGraphIndex(), false)); Edge edge3NotInPersp = root.getEdge(root.createEdge(nodeInx[1], nodeInx[2], true)); persp.restoreNode(node2NotInPersp); persp.restoreEdge(edge3NotInPersp);
private final int hideEdge(GraphPerspective source, int rootGraphEdgeInx) { // see if we can hide the edge final int returnThis = canHideEdge(rootGraphEdgeInx); if (returnThis != 0) { final GraphPerspectiveChangeListener listener = m_lis[0]; // notify listeners of edge about to be hidden if (listener != null) { final Edge removedEdge = m_root.getEdge(rootGraphEdgeInx); listener.graphPerspectiveChanged(new GraphPerspectiveEdgesHiddenEvent(source, new Edge[] { removedEdge })); } // hide the edge actuallyHideEdge(rootGraphEdgeInx); } return returnThis; }
boolean setChanged; for (int index = 0; index < eLength; index++) { edge = root.getEdge(indices[index]); setChanged = selectedEdges.remove(edge);
/** * DOCUMENT ME! * * @param args DOCUMENT ME! */ public static void main(String[] args) { final RootGraph root = new FingExtensibleRootGraph(new MyNodeDepot(), new MyEdgeDepot()); final Node n1 = root.getNode(root.createNode()); final Node n2 = root.getNode(root.createNode()); final Node n3 = root.getNode(root.createNode()); final Node n4 = root.getNode(root.createNode()); root.createEdge(n1, n2, false); int edge_idx = root.createEdge(n1, n3, false); final Edge del1 = root.getEdge(edge_idx); edge_idx = root.createEdge(n2, n3, false); final Edge del2 = root.getEdge(edge_idx); root.removeEdge(del1); root.removeEdge(del2); edge_idx = root.createEdge(n1, n4, false); final Edge subedge = root.getEdge(edge_idx); final Node src = subedge.getSource(); final Node target = subedge.getTarget(); if ((src == null) || (target == null)) throw new IllegalStateException("the bug is here"); } }
private void actuallyHideNode(Object source, final int rootGraphNodeInx) { final int nativeNodeIndex = m_rootToNativeNodeInxMap.get(~rootGraphNodeInx); final IntEnumerator nativeEdgeInxEnum = m_graph.edgesAdjacent(nativeNodeIndex, true, true, true); if (nativeEdgeInxEnum.numRemaining() > 0) { final Edge[] edgeRemoveArr = new Edge[nativeEdgeInxEnum.numRemaining()]; for (int i = 0; i < edgeRemoveArr.length; i++) { final int rootGraphEdgeInx = m_nativeToRootEdgeInxMap.getIntAtIndex(nativeEdgeInxEnum .nextInt()); // The edge returned by the RootGraph won't be null even if this // hideNode operation is triggered by a node being removed from // the underlying RootGraph - this is because when a node is removed // from an underlying RootGraph, all touching edges to that node are // removed first from that RootGraph, and corresponding edge removal // events are fired before the node removal event is fired. edgeRemoveArr[i] = m_root.getEdge(rootGraphEdgeInx); } hideEdges(source, edgeRemoveArr); } // nativeNodeIndex tested for validity with adjacentEdges() above. if (m_graph.nodeRemove(nativeNodeIndex)) { m_rootToNativeNodeInxMap.put(~rootGraphNodeInx, Integer.MAX_VALUE); m_nativeToRootNodeInxMap.setIntAtIndex(0, nativeNodeIndex); } else { throw new IllegalStateException("internal error - node didn't exist, its adjacent edges did"); } }
private final int[] hideEdges(GraphPerspective source, int[] rootEdgeInx) { m_heap.empty(); final MinIntHeap successes = m_heap; final int[] returnThis = new int[rootEdgeInx.length]; // see if we can hide the edge for (int i = 0; i < rootEdgeInx.length; i++) { returnThis[i] = canHideEdge(rootEdgeInx[i]); if (returnThis[i] != 0) { successes.toss(i); } } if (successes.size() > 0) { final GraphPerspectiveChangeListener listener = m_lis[0]; // notify listeners of the edges about to be hidden if (listener != null) { final Edge[] successArr = new Edge[successes.size()]; final IntEnumerator enumx = successes.elements(); int index = -1; while (enumx.numRemaining() > 0) successArr[++index] = m_root.getEdge(rootEdgeInx[enumx.nextInt()]); listener.graphPerspectiveChanged(new GraphPerspectiveEdgesHiddenEvent(source, successArr)); } // actually hide edges final IntEnumerator successEnum = successes.elements(); while (successEnum.numRemaining() > 0) actuallyHideEdge(rootEdgeInx[successEnum.nextInt()]); } return returnThis; }