package ie.dcu.apps.ist; import ie.dcu.eval.*; import java.util.*; public class EvaluatorRegistry { private static EvaluatorRegistry instance; private final Set evaluators; private EvaluatorRegistry() { evaluators = new LinkedHashSet(); init(); } private void init() { add(new ConfusionMatrixEvaluator()); add(new BoundaryAccuracyEvaluator()); } public static EvaluatorRegistry getInstance() { if (instance == null) { instance = new EvaluatorRegistry(); } return instance; } public Evaluator find(String name) { for (Evaluator e : evaluators) { // Check name String ename = e.getName(); if (ename.equals(name)) { return e; } // Check class name String cname = e.getClass().getName(); if (cname.equals(name)) { return e; } // Check simple name String sname = e.getClass().getSimpleName(); if (sname.equals(name)) { return e; } } return null; } public void add(Evaluator evaluator) { evaluators.add(evaluator); } public Set evaluators() { return Collections.unmodifiableSet(evaluators); } public Iterator iterator() { return evaluators.iterator(); } }