1 25 39 package org.jgrapht.experimental.isomorphism; 40 41 import java.util.*; 42 43 import org.jgrapht.*; 44 import org.jgrapht.experimental.equivalence.*; 45 import org.jgrapht.experimental.permutation.*; 46 47 48 58 class PermutationIsomorphismInspector<V, E> 59 extends AbstractExhaustiveIsomorphismInspector<V, E> 60 { 61 62 64 74 public PermutationIsomorphismInspector( 75 Graph<V, E> graph1, 76 Graph<V, E> graph2, 77 78 EquivalenceComparator<? super V, ? super Graph<? super V, ? super E>> vertexChecker, 81 EquivalenceComparator<? super E, ? super Graph<? super V, ? super E>> edgeChecker) 82 { 83 super(graph1, graph2, vertexChecker, edgeChecker); 84 } 85 86 92 public PermutationIsomorphismInspector( 93 Graph<V, E> graph1, 94 Graph<V, E> graph2) 95 { 96 super(graph1, graph2); 97 } 98 99 101 110 protected CollectionPermutationIter<V> createPermutationIterator( 111 Set<V> vertexSet1, 112 Set<V> vertexSet2) 113 { 114 return new CollectionPermutationIter<V>(vertexSet2); 115 } 116 117 125 protected boolean areVertexSetsOfTheSameEqualityGroup( 126 Set<V> vertexSet1, 127 Set<V> vertexSet2) 128 { 129 if (vertexSet1.size() != vertexSet2.size()) { 130 return false; 131 } 132 Iterator<V> iter2 = vertexSet2.iterator(); 133 134 for (Iterator<V> iter1 = vertexSet1.iterator(); iter1.hasNext();) { 136 V vertex1 = iter1.next(); 137 V vertex2 = iter2.next(); 138 if ( 139 !this.vertexComparator.equivalenceCompare( 140 vertex1, 141 vertex2, 142 this.graph1, 143 this.graph2)) { 144 return false; 145 } 146 } 147 return true; 148 } 149 } 150 | Popular Tags |