package foundation.io.engine; import foundation.code.CodeProvider; import foundation.dao.bizlogic.ICodeProvider; import foundation.data.entity.Entity; import foundation.data.meta.field.Field; import foundation.util.ID; public class TriggerEvent implements ILineValueListener{ private String triggerName; private String[] columnNames; private int[] columnIndexes; private Field field; private String remark; public void setTriggerName(String triggerName) { this.triggerName = triggerName; } public void setColumnNames(String[] columnNames) { this.columnNames = columnNames; } public void setColumnIndexes(int[] columnIndexes) { this.columnIndexes = columnIndexes; } public void setField(String fieldName) { Field field = new Field(fieldName); this.field = field; } public void setRemark(String remark) { this.remark = remark; } public String getTriggerName() { return triggerName; } public String[] getColumnNames() { return columnNames; } public int[] getColumnIndexes() { return columnIndexes; } public String getFieldName() { return field.getName(); } public String getRemark() { return remark; } @Override public String notifyReadNewValue(TriggerEvent event, Entity entity, String key) { String triggerName = event.getTriggerName(); String value = null; //1. 根据需要,生成编码 if (triggerName.startsWith("Code")) { ICodeProvider codeProvider = CodeProvider.getInstance(field, triggerName); value = codeProvider.nextval(null, entity); entity.set(field.getName(), value); } else if (triggerName.startsWith("ID")) { value = ID.newValue(); entity.set(field.getName(), value); } return value; } }