package foundation.data.rule.exists;
|
|
import java.util.Iterator;
|
|
import foundation.server.config.DBaseType;
|
import foundation.util.MapList;
|
|
public class ExistsRules implements Iterable<ExistsRule> {
|
|
private DBaseType dbaseType;
|
private String dataName;
|
private MapList<String, ExistsRule> rules;
|
|
|
public ExistsRules(String dataName) {
|
this.dataName = dataName;
|
rules = new MapList<String, ExistsRule>();
|
}
|
|
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<ExistsRule> iterator() {
|
return rules.iterator();
|
}
|
|
@Override
|
public String toString() {
|
return dataName + " size=" + rules.size();
|
}
|
|
}
|