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;
|
}
|
|
}
|