package com.ximple.eofms.filter; import java.util.LinkedList; import org.geotools.feature.Feature; import com.ximple.io.dgn7.Element; public class ElementDispatcher { private LinkedList rules; private boolean useLongName = false; public ElementDispatcher() { rules = new LinkedList(); } public LinkedList getRules() { return rules; } public void addRule(ElementDispatchableFilter rule) { rule.setUseLongName(useLongName); rules.add(rule); } public boolean isUseLongName() { return useLongName; } public void setUseLongName(boolean useLongName) { if (this.useLongName != useLongName) { this.useLongName = useLongName; for (ElementDispatchableFilter filter : rules) { filter.setUseLongName(useLongName); } } } public Feature execute(Element element) { for (ElementDispatchableFilter rule : rules) { if (rule.isDispatchable(element)) { return rule.execute(element); } } return null; } }