1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package net.sf.dexterim.core;
20
21 import java.util.ArrayList;
22 import java.util.HashMap;
23 import java.util.Iterator;
24 import java.util.List;
25 import java.util.Map;
26
27 /***
28 *@author Christoph Walcher
29 */
30 public abstract class DefaultStatusModel implements StatusModel {
31 private List statusList;
32 private Map statusMap;
33
34
35 /***
36 * Constructor for the DefaultStatusModel object
37 */
38 public DefaultStatusModel() {
39 this.statusMap = new HashMap();
40
41 synchStatusMap(createStatusList(), statusMap);
42 }
43
44 /***
45 * Description of the Method
46 *
47 *@param statusList Description of the Parameter
48 *@param statusMap Description of the Parameter
49 */
50 private final void synchStatusMap(List statusList, Map statusMap) {
51
52 statusMap.clear();
53
54 Iterator statusIter = statusList.iterator();
55
56 while (statusIter.hasNext()) {
57 Status status = (Status)statusIter.next();
58
59 statusMap.put(status.getCode(), status);
60 }
61 }
62
63 /***
64 * Gets the status attribute of the DefaultStatusModel object
65 *
66 *@param code Description of the Parameter
67 *@return The status value
68 */
69 public Status getStatus(Object code) {
70 return (Status)statusMap.get(code);
71 }
72
73 /***
74 *@return Description of the Return Value
75 *@returns Sorted List of Status instances
76 */
77 public List listStatus() {
78 return statusList;
79 }
80
81 /***
82 *@return Description of the Return Value
83 *@returns List of Status Codes
84 */
85 public List listStatusCodes() {
86 return new ArrayList(statusMap.keySet());
87 }
88
89 protected abstract List createStatusList();
90 }