package org.eclipse.dltk.validators.internal.externalchecker.ui;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.Vector;
import org.eclipse.dltk.validators.internal.externalchecker.core.Rule;
public class RulesList {
private Vector<Rule> rules = new Vector<>();
private Set<IRulesListViewer> changeListeners = new HashSet<>();
private String[] types = { Messages.RulesList_error, Messages.RulesList_warning };
public void addRule() {
Rule r = new Rule("%f:%n:%m", Messages.RulesList_error); //$NON-NLS-1$
rules.add(r);
Iterator<IRulesListViewer> iterator = changeListeners.iterator();
while (iterator.hasNext()) {
iterator.next().addRule(r);
}
}
public void removeChangeListener(IRulesListViewer viewer) {
changeListeners.remove(viewer);
}
public void addChangeListener(IRulesListViewer viewer) {
changeListeners.add(viewer);
}
public Vector<Rule> getRules() {
return rules;
}
public void ruleChanged(Rule r) {
Iterator<IRulesListViewer> iterator = changeListeners.iterator();
while (iterator.hasNext())
iterator.next().updateRule(r);
}
public void addRule(Rule r) {
rules.add(r);
Iterator<IRulesListViewer> iterator = changeListeners.iterator();
while (iterator.hasNext()) {
iterator.next().addRule(r);
}
}
public void removeRule(Rule task) {
rules.remove(task);
Iterator<IRulesListViewer> iterator = changeListeners.iterator();
while (iterator.hasNext())
iterator.next().removeRule(task);
}
public String[] getTypes() {
return types;
}
}