package foundation.state;
|
|
import foundation.data.entity.Entity;
|
import foundation.data.object.IParamProvider;
|
import foundation.data.rule.FieldDefaultValueCreator;
|
import foundation.variant.provider.DataEvent;
|
|
public class StateDefaultValueCreator extends FieldDefaultValueCreator {
|
|
private StateMachine stateMachine;
|
|
@Override
|
public Object exec(DataEvent dataEvent, Entity entity, IParamProvider paramProvider) {
|
if (DataEvent.New == dataEvent || DataEvent.Insert == dataEvent) {
|
StateField stateField = stateMachine.getStateField();
|
State state = stateMachine.getFirst();
|
|
setStateValue(entity, stateField, state);
|
return state.getCode();
|
}
|
else if (DataEvent.Update == dataEvent) {
|
StateField stateField = stateMachine.getStateField();
|
setStateValue(entity, stateField, null);
|
return "不修改原值";
|
}
|
|
return "不修改原值";
|
}
|
|
private void setStateValue(Entity entity, StateField stateField, State state) {
|
if (state == null) {
|
return;
|
}
|
|
entity.set(stateField.getCode(), state.getCode());
|
entity.set(stateField.getName(), state.getName());
|
}
|
|
public StateMachine getStateMachine() {
|
return stateMachine;
|
}
|
|
public void setStateMachine(StateMachine stateMachine) {
|
this.stateMachine = stateMachine;
|
}
|
}
|