package foundation.data.rule;
|
|
import foundation.data.entity.Entity;
|
import foundation.data.object.IParamProvider;
|
import foundation.token.IUser;
|
import foundation.token.IUserManager;
|
import foundation.variant.expression.VariantExpression;
|
import foundation.variant.expression.VariantList;
|
import foundation.variant.expression.VariantSegment;
|
import foundation.variant.provider.DataEvent;
|
import foundation.variant.provider.VariantCenter;
|
|
public class VariantDefaultValueCreator extends FieldDefaultValueCreator {
|
|
public VariantDefaultValueCreator() {
|
type = FieldDefaultValueType.Variant;
|
}
|
|
@Override
|
protected void setRule(String rule) {
|
try {
|
VariantExpression expression = new VariantExpression(rule);
|
VariantList varinats = expression.getVariantList();
|
|
if (varinats.isEmpty()) {
|
return;
|
}
|
|
VariantSegment variant = varinats.get(0);
|
String name = variant.getName();
|
super.setRule(name);
|
}
|
catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public Object exec(DataEvent dataEvent, Entity entity, IParamProvider paramProvider) {
|
IUser user = IUserManager.getCurrentUser();
|
Object value = VariantCenter.getValue(dataEvent, rule, user);
|
|
if (value != null) {
|
entity.set(fieldName, value);
|
}
|
|
return value;
|
}
|
|
}
|