/** * Processes the specified signature that represents the signature of potential changes * @param signature The signature */ public void processChanges(Set<T> signature) { // Break existing cycles - they will be reformed if necessary removeCyclesForSignature(signature); // Compute new cycles HashSet<Set<T>> result = new HashSet<Set<T>>(); computeCyclesForSignature(signature, new HashMap<T, Collection<T>>(), new HashSet<T>(), result); // Add them addCycles(result); }