package weaver; import foundation.dao.DataPackage; import foundation.data.entity.Entity; import foundation.util.Util; import foundation.variant.expression.VariantExpression; import foundation.variant.expression.VariantList; import foundation.variant.expression.VariantSegment; public class SignConfig { private String id; private String name; private String flowId; private String dataname; private String fileField; private SignType signType; private String initiator; private String subject; private VariantExpression expression; public void load(Entity entity) throws Exception { this.id = entity.getId(); this.name = entity.getString("name"); this.flowId = entity.getString("flow_id"); this.fileField = entity.getString("file_field"); this.dataname = entity.getString("dataname"); this.signType = SignType.parse(entity.getString("sign_type")); this.initiator = entity.getString("initiator"); String subject = entity.getString("subject"); this.subject = subject; if(!Util.isEmpty(subject)) { this.expression = new VariantExpression(subject); } } public String getSubjectContent(Entity entity) { if(expression == null) { return subject; } VariantList variants = expression.getVariantList(); for (VariantSegment variant: variants) { String segment = variant.getName(); segment = segment.toLowerCase(); String value = entity.getString(segment); variant.setValue(value); } return expression.toString(); } public String getId() { return id; } public String getName() { return name; } public String getFlowId() { return flowId; } public String getDataname() { return dataname; } public String getFileField() { return fileField; } public SignType getSignType() { return signType; } public VariantExpression getExpression() { return expression; } }