@Override public Iterable<Transition<E, V>> transitionsFrom(final V state) { ArrayList<Transition<E, V>> transitions = new ArrayList<Transition<E, V>>(); for(GraphEdge<V, E> edge : graph.edgesOf(state)){ V oppositeVertex = edge.getVertex1().equals(state) ? edge.getVertex2() : edge.getVertex1(); transitions.add(Transition.create(state, edge.getEdgeValue(), oppositeVertex)); } Collections.sort(transitions, new ComparatorTransitions()); return transitions; } };
public void remove(V v, GraphEdge<V,E> edge){ // Try to remove vertex from row/columns Preconditions.checkArgument(edge.getVertex1().equals(v) || edge.getVertex2().equals(v), "Edge is not connected with the vertex"); V opposite = edge.getVertex1().equals(v) ? edge.getVertex2() : edge.getVertex1(); graphTable.row(v).remove(opposite); }
@Override public Iterable<Transition<E, V>> transitionsFrom(final V state) { ArrayList<Transition<E, V>> transitions = new ArrayList<Transition<E, V>>(); for(GraphEdge<V, E> edge : dg.outgoingEdgesOf(state)){ transitions.add(Transition.create(state, edge.getEdgeValue(), edge.getVertex2())); } return transitions; } };
@Override public Boolean apply(GraphEdge<V, E> edge) { return edge.getVertex1().equals(vertex); } });
@Override public Boolean apply(GraphEdge<V, E> edge) { return edge.getVertex2().equals(vertex); } });
@Override public boolean remove(V v){ // Remove all edges related to v Set<GraphEdge<V, E>> edges = this.connected.get(v); if (edges == null) return false; for(Iterator<GraphEdge<V,E>> it = edges.iterator(); it.hasNext(); ){ // Remove the edge in the list of the selected vertex GraphEdge<V,E> edge = it.next(); it.remove(); V v2 = edge.getVertex1().equals(v) ? edge.getVertex2() : edge.getVertex1(); for(Iterator<GraphEdge<V,E>> it2 = this.connected.get(v2).iterator(); it2.hasNext();){ GraphEdge<V,E> edge2 = it2.next(); if (edge2.getVertex1().equals(v) || edge2.getVertex2().equals(v)){ it2.remove(); } } } this.connected.remove(v); return true; }
@Override public Iterable<Transition<E, V>> transitionsFrom(final V state) { ArrayList<Transition<E, V>> transitions = new ArrayList<Transition<E, V>>(); for(GraphEdge<V, E> edge : dg.outgoingEdgesOf(state)){ transitions.add(Transition.create(state, edge.getEdgeValue(), edge.getVertex2())); } return transitions; } };
@Override public Boolean apply(GraphEdge<V, E> edge) { return edge.getVertex1().equals(vertex); } });
@Override public Boolean apply(GraphEdge<V, E> edge) { return edge.getVertex2().equals(vertex); } });
@Override public Iterable<Transition<E, V>> transitionsFrom(final V state) { ArrayList<Transition<E, V>> transitions = new ArrayList<Transition<E, V>>(); for(GraphEdge<V, E> edge : graph.edgesOf(state)){ V oppositeVertex = edge.getVertex1().equals(state) ? edge.getVertex2() : edge.getVertex1(); transitions.add(Transition.create(state, edge.getEdgeValue(), oppositeVertex)); } return transitions; } };
@Override public boolean remove(V v){ // Remove all edges related to v Set<GraphEdge<V, E>> edges = this.connected.get(v); if (edges == null) return false; for(Iterator<GraphEdge<V,E>> it = edges.iterator(); it.hasNext(); ){ // Remove the edge in the list of the selected vertex GraphEdge<V,E> edge = it.next(); it.remove(); V v2 = edge.getVertex1().equals(v) ? edge.getVertex2() : edge.getVertex1(); for(Iterator<GraphEdge<V,E>> it2 = this.connected.get(v2).iterator(); it2.hasNext();){ GraphEdge<V,E> edge2 = it2.next(); if (edge2.getVertex1().equals(v) || edge2.getVertex2().equals(v)){ it2.remove(); } } } this.connected.remove(v); return true; }
@Override public Iterable<Transition<E, V>> transitionsFrom(final V state) { ArrayList<Transition<E, V>> transitions = new ArrayList<Transition<E, V>>(); for(GraphEdge<V, E> edge : dg.outgoingEdgesOf(state)){ transitions.add(Transition.create(state, edge.getEdgeValue(), edge.getVertex2())); } Collections.sort(transitions, new ComparatorTransitions()); return transitions; } };
@Override public Iterable<Transition<E, V>> transitionsFrom(final V state) { ArrayList<Transition<E, V>> transitions = new ArrayList<Transition<E, V>>(); for(GraphEdge<V, E> edge : graph.edgesOf(state)){ V oppositeVertex = edge.getVertex1().equals(state) ? edge.getVertex2() : edge.getVertex1(); transitions.add(Transition.create(state, edge.getEdgeValue(), oppositeVertex)); } return transitions; } };
public void remove(V v){ // Get vertices connected with this one for(GraphEdge<V,E> edge : edgesOf(v)){ V connectedVertex = edge.getVertex1().equals(v) ? edge.getVertex2() : edge.getVertex1(); // Is this vertex connected with a different vertex? if (!greaterThan(1, edgesOf(connectedVertex))){ disconnected.add(connectedVertex); } } if (graphTable.containsRow(v)){ graphTable.row(v).clear(); } if (graphTable.containsColumn(v)){ graphTable.column(v).clear(); } // Check for disconnected vertices disconnected.remove(v); // v no longer exists }