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