package foundation.data.rule.exists; import java.util.Iterator; import foundation.server.config.DBaseType; import foundation.util.MapList; public class ExistsRules implements Iterable { private DBaseType dbaseType; private String dataName; private MapList rules; public ExistsRules(String dataName) { this.dataName = dataName; rules = new MapList(); } public static ExistsRules getInstance(String dataName, DBaseType dbaseType) { ExistsBucket bucket = ExistsBucket.getInstance(); ExistsRules result = bucket.get(dataName); if (result == null) { return null; } result.setDbaseType(dbaseType); return result; } public void loadOne(String ruleId, ExistsRule rule) { if (rules.contains(ruleId)) { return; } rules.add(ruleId, rule); } public ExistsRules setDbaseType(DBaseType dbaseType) { this.dbaseType = dbaseType; for (ExistsRule rule: rules) { rule.setDBaseType(dbaseType); } return this; } public DBaseType getDbaseType() { return dbaseType; } @Override public Iterator iterator() { return rules.iterator(); } @Override public String toString() { return dataName + " size=" + rules.size(); } }