package pl.net.bluesoft.rnd.processtool.model; import org.aperteworkflow.search.ProcessInstanceSearchAttribute; import org.aperteworkflow.search.Searchable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Table; import java.util.Arrays; import java.util.Collection; /** * Simple attribute with String value. * * @author tlipski@bluesoft.net.pl */ @Entity @Table(name="pt_process_instance_s_attr") public class ProcessInstanceSimpleAttribute extends ProcessInstanceAttribute implements BpmVariable, Searchable { @Column(name="value_") private String value; private String bpmVariableName; public ProcessInstanceSimpleAttribute() { } public ProcessInstanceSimpleAttribute(String key, String value) { setKey(key); setValue(value); setBpmVariableName(key); } @Override public String getBpmVariableName() { return bpmVariableName != null ? bpmVariableName : getKey(); } @Override public Object getBpmVariableValue() { return value; } public void setBpmVariableName(String bpmVariableName) { this.bpmVariableName = bpmVariableName; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } @Override public String toString() { return value; } @Override public Collection<ProcessInstanceSearchAttribute> getAttributes() { return Arrays.asList( new ProcessInstanceSearchAttribute(getKey(), value, false), new ProcessInstanceSearchAttribute(getBpmVariableName(), value, false) ); } }