package pl.net.bluesoft.rnd.processtool.model;
import org.aperteworkflow.search.ProcessInstanceSearchAttribute;
import org.aperteworkflow.search.Searchable;
import javax.persistence.*;
import java.util.*;
/**
* Created by IntelliJ IDEA.
* User: zmalinowski
* Date: 2/7/12
* Time: 3:18 PM
*/
@Entity
@Table(name = "pt_pi_dict_attr")
public class ProcessInstanceDictionaryAttribute extends ProcessInstanceAttribute implements Searchable{
@OneToMany(cascade = {CascadeType.ALL})
@JoinColumn(name="dictionary_id")
private Set<ProcessInstanceDictionaryItem> items;
public ProcessInstanceDictionaryAttribute() {
}
public ProcessInstanceDictionaryAttribute(String key) {
setKey(key);
}
public Set<ProcessInstanceDictionaryItem> getItems() {
if(items == null)
items = new HashSet<ProcessInstanceDictionaryItem>();
return items;
}
public void setItems(Set<ProcessInstanceDictionaryItem> items) {
this.items = items;
}
@Override
public Collection<ProcessInstanceSearchAttribute> getAttributes() {
List<ProcessInstanceSearchAttribute> attrs = new ArrayList<ProcessInstanceSearchAttribute>();
for (ProcessInstanceDictionaryItem e : items) {
attrs.add(new ProcessInstanceSearchAttribute("map_key", e.getKey()));
attrs.add(new ProcessInstanceSearchAttribute("map_value", e.getValue()));
}
return attrs;
}
public void put(String key, String value) {
getItems().add(new ProcessInstanceDictionaryItem(key, value));
}
}