| | |
| | | package biz.clean; |
| | | |
| | | import java.util.Date; |
| | | |
| | | import foundation.data.entity.Entity; |
| | | import foundation.data.entity.EntitySet; |
| | | import foundation.data.entity.Filter; |
| | | import foundation.data.object.DataObject; |
| | | import foundation.json.JSONReader; |
| | | import foundation.preload.Bucket; |
| | | |
| | | public class CleanEngine { |
| | | private String id; |
| | | private String field; |
| | | private String name; |
| | | private Bucket<Rule> ruleBucket; |
| | | private String remark; |
| | | private Date lastUpdateTime; |
| | | |
| | | public void load(Entity entity) throws Exception { |
| | | id = entity.getString("id"); |
| | | field = entity.getString("field_name"); |
| | | name = entity.getString("name"); |
| | | remark = entity.getString("remark"); |
| | | |
| | | lastUpdateTime = new Date(); |
| | | } |
| | | |
| | | 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); |
| | | |
| | | String ruleId = entity.getId(); |
| | | boolean active = entity.getBoolean("is_active", true); |
| | | if (!active) { |
| | | ruleBucket.remove(ruleId); |
| | | return ; |
| | | } |
| | | |
| | | Rule oneRule = new Rule(); |
| | | oneRule.load(entity); |
| | | ruleBucket.loadOne(ruleId, oneRule); |
| | | } |
| | | |
| | | public String modify(String value) throws Exception { |
| | |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | public void checkUpdate() throws Exception { |
| | | DataObject dataObject = DataObject.getInstance("sys_clean_detail"); |
| | | Filter filter = new Filter("last_update_time", ">=" , lastUpdateTime); |
| | | EntitySet detailSet = dataObject.getTableEntitySet(filter); |
| | | |
| | | for (Entity detail : detailSet) { |
| | | String parentId = detail.getParentId(); |
| | | |
| | | if (id.equalsIgnoreCase(parentId)) { |
| | | loadOneRule(detail); |
| | | } |
| | | } |
| | | |
| | | lastUpdateTime = new Date(); |
| | | } |
| | | |
| | | public JSONReader modify(JSONReader data, String field) throws Exception { |
| | |
| | | return null; |
| | | } |
| | | |
| | | public Entity modify(Entity entity) 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 getRemark() { |
| | | return remark; |
| | | } |
| | | |
| | | } |