1 16 17 package info.jtrac.domain; 18 19 import static info.jtrac.Constants.*; 20 21 import info.jtrac.util.XmlUtils; 22 23 import java.io.Serializable ; 24 import java.util.HashMap ; 25 import java.util.Map ; 26 import org.dom4j.Element; 27 28 35 public class Role implements Serializable { 36 37 private String name; 38 private String description; 39 private Map <Integer , State> states = new HashMap <Integer , State>(); 40 41 public Role(String name) { 42 this.name = name; 43 } 44 45 public Role(Element e) { 46 name = e.attributeValue(NAME); 47 for (Object o : e.elements(STATE)) { 48 State state = new State((Element) o); 49 states.put(state.getStatus(), state); 50 } 51 } 52 53 54 public void addAsChildOf(Element parent) { 55 Element e = parent.addElement(ROLE); 56 copyTo(e); 57 } 58 59 60 public Element getAsElement() { 61 Element e = XmlUtils.getNewElement(ROLE); 62 copyTo(e); 63 return e; 64 } 65 66 67 private void copyTo(Element e) { 68 e.addAttribute(NAME, name + ""); 70 for (State state : states.values()) { 71 state.addAsChildOf(e); 72 } 73 } 74 75 77 public void add(State state) { 78 states.put(state.getStatus(), state); 79 } 80 81 public void removeState(int stateId) { 82 states.remove(stateId); 83 for(State s : states.values()) { 84 s.removeTransition(stateId); 85 } 86 } 87 88 90 public Map <Integer , State> getStates() { 91 return states; 92 } 93 94 public void setStates(Map <Integer , State> states) { 95 this.states = states; 96 } 97 98 public String getDescription() { 99 return description; 100 } 101 102 public void setDescription(String description) { 103 this.description = description; 104 } 105 106 public String getName() { 107 return name; 108 } 109 110 public void setName(String name) { 111 this.name = name; 112 } 113 114 @Override 115 public String toString() { 116 StringBuffer sb = new StringBuffer (); 117 sb.append("name [").append(name); 118 sb.append("]; states [").append(states); 119 sb.append("]"); 120 return sb.toString(); 121 } 122 123 } 124 | Popular Tags |