package org.archstudio.bna.logics.hints.synchronizers;
import java.util.Collection;
import java.util.Collections;
import org.archstudio.bna.IBNAModel;
import org.archstudio.bna.IBNAWorld;
import org.archstudio.bna.logics.hints.IHintSynchronizer;
import com.google.common.collect.HashMultiset;
import com.google.common.collect.Multiset;
public abstract class AbstractHintSynchronizer implements IHintSynchronizer {
public boolean DEBUG = false;
protected final IBNAWorld world;
protected final IBNAModel model;
protected final String hintName;
private final Multiset<Object> ignoreHintUpdates = HashMultiset.create();
public AbstractHintSynchronizer(IBNAWorld world, String hintName) {
this.world = world;
this.model = world.getBNAModel();
this.hintName = hintName;
}
protected void ignore(Object context) {
if (DEBUG) {
System.out.println(" Ignoring: " + context);
}
ignoreHintUpdates.add(context);
}
protected boolean wasIgnored(Object context) {
if (DEBUG) {
if (ignoreHintUpdates.contains(context)) {
System.out.println(" Ignored: " + context);
}
else {
System.out.println("Not Ignored: " + context);
}
}
return ignoreHintUpdates.remove(context);
}
@Override
public final Collection<String> getRepositoryNamesOfInterest() {
return Collections.singleton(hintName);
}
}