package foundation.clean;
|
|
import foundation.dao.preload.Bucket;
|
import foundation.data.entity.Entity;
|
import foundation.json.JSONReader;
|
|
public class CleanEngine {
|
private String id;
|
private String name;
|
private Bucket<Rule> ruleBucket;
|
private String remark;
|
|
public void load(Entity entity) throws Exception {
|
id = entity.getString("id");
|
name = entity.getString("name");
|
remark = entity.getString("remark");
|
}
|
|
public void loadOneRule(Entity entity) throws Exception {
|
Rule oneRule = new Rule();
|
oneRule.load(entity);
|
|
if (ruleBucket == null) {
|
ruleBucket = new Bucket<Rule>();
|
}
|
ruleBucket.loadOne(entity.getId(), oneRule);
|
}
|
|
public String modify(String value) throws Exception {
|
for(Rule rule: ruleBucket) {
|
String result = rule.match(value);
|
|
if (result != null) {
|
// return result value if match anyone rule
|
return result;
|
}
|
}
|
return null;
|
}
|
|
public JSONReader modify(JSONReader data, String field) throws Exception {
|
JSONReader json = data;
|
String value = json.getString(field);
|
for(Rule rule: ruleBucket) {
|
String result = rule.match(value);
|
|
if (result != null) {
|
// return json value if match anyone rule
|
json.put(field, result);
|
return json;
|
}
|
}
|
return null;
|
}
|
|
public Entity modify(Entity entity, String field) throws Exception {
|
Entity data = entity;
|
String value = data.getString(field);
|
for(Rule rule: ruleBucket) {
|
String result = rule.match(value);
|
|
if (result != null) {
|
// return entity value if match anyone rule
|
data.set(field, result);
|
return data;
|
}
|
}
|
return null;
|
}
|
|
public String getId() {
|
return id;
|
}
|
|
public String getName() {
|
return name;
|
}
|
|
public Bucket<Rule> getRuleBucket() {
|
return ruleBucket;
|
}
|
|
public String getRemark() {
|
return remark;
|
}
|
|
}
|