1 package com.bonevich.erj.db;
2
3 import com.bonevich.java.util.ImmutableIterator;
4
5 import java.util.*;
6
7 /***
8 * ClassDescription
9 *
10 * @author jbonevic
11 * @version $Id: GenerationOptionMetaData.html,v 1.1 2009/03/07 17:55:43 jbonevic Exp $
12 */
13 public class GenerationOptionMetaData
14 {
15 private List _optionGroups = new ArrayList(10); // element: OptionGroup
16 private List _groupIds = new ArrayList(10); // element: String
17 private List _optionIds = new ArrayList(40); // element: String
18
19 /***
20 * Constructor for GenerationOptionMetaData.
21 */
22 public GenerationOptionMetaData()
23 {
24 }
25
26 public Iterator getOptionIds()
27 {
28 return new ImmutableIterator(_optionIds);
29 }
30
31 public Iterator getOptionGroupIds()
32 {
33 return new ImmutableIterator(_groupIds);
34 }
35
36 public String getOptionGroupDisplayName(String groupId)
37 {
38 OptionGroup group = (OptionGroup) getOptionWithId(_optionGroups, groupId);
39 return group != null ? group.getId() : null;
40 }
41
42 OptionGroup createOptionGroup(String groupId, String display)
43 {
44 OptionGroup newGroup = new OptionGroup(groupId, display);
45 _optionGroups.add(newGroup);
46 _groupIds.add(groupId);
47 return newGroup;
48 }
49
50 public Iterator getOptionsForGroup(String groupId)
51 {
52 OptionGroup group = (OptionGroup) getOptionWithId(_optionGroups, groupId);
53 return group != null ? group.getOptionDisplayNames() : null;
54 }
55
56 public String getOptionDisplayName(String groupId, String optionId)
57 {
58 OptionGroup group = (OptionGroup) getOptionWithId(_optionGroups, groupId);
59 if (group == null) return null;
60
61 Option option = group.getOption(optionId);
62 return option != null ? option.getDisplayName() : null;
63 }
64
65 public boolean isAnOption(String optionId)
66 {
67 return _optionIds.contains(optionId);
68 }
69
70 private static Option getOptionWithId(Collection coll, String id)
71 {
72 Option option = null;
73 Iterator itr = coll.iterator();
74 while (itr.hasNext())
75 {
76 option = (Option) itr.next();
77 if (option.getId().equals(id))
78 {
79 break;
80 }
81 }
82 return option;
83 }
84
85 ///////////////////////////////////////////////////////////////
86 // Inner classes
87
88 private class Option
89 {
90 protected String _id;
91 protected String _displayName;
92
93 public Option(String id, String displayName)
94 {
95 _id = id;
96 _displayName = displayName;
97 }
98 /***
99 * Returns the displayName.
100 * @return String
101 */
102 public String getDisplayName()
103 {
104 return _displayName;
105 }
106
107 /***
108 * Returns the id.
109 * @return String
110 */
111 public String getId()
112 {
113 return _id;
114 }
115
116 /***
117 * Sets the displayName.
118 * @param displayName The displayName to set
119 */
120 public void setDisplayName(String displayName)
121 {
122 _displayName = displayName;
123 }
124
125 /***
126 * Sets the id.
127 * @param id The id to set
128 */
129 public void setId(String id)
130 {
131 _id = id;
132 }
133
134 /***
135 * @see java.lang.Object#toString()
136 */
137 public String toString()
138 {
139 return _displayName;
140 }
141
142 /***
143 * @see java.lang.Object#equals(Object)
144 */
145 public boolean equals(Object rhs)
146 {
147 if (rhs instanceof Option)
148 {
149 Option that = (Option) rhs;
150 if (_id.equals(that.getId()))
151 {
152 return true;
153 }
154 }
155 return false;
156 }
157
158 /***
159 * @see java.lang.Object#hashCode()
160 */
161 public int hashCode()
162 {
163 return _id.hashCode();
164 }
165
166 }
167
168 public class OptionGroup extends Option
169 {
170 private List _options = new ArrayList(30);
171 private List _optionIds = new ArrayList(30);
172
173 public OptionGroup(String groupId, String displayName)
174 {
175 super(groupId,displayName);
176 }
177
178 public void addOption(String optionId, String display)
179 {
180 if (! GenerationOptionMetaData.this.isAnOption(optionId))
181 {
182 _options.add(new Option(optionId,display));
183 _optionIds.add(optionId);
184 GenerationOptionMetaData.this._optionIds.add(optionId);
185 }
186 }
187
188 public Iterator getOptions()
189 {
190 return new ImmutableIterator(_options);
191 }
192
193 public Iterator getOptionDisplayNames()
194 {
195 return new ImmutableIterator(_optionIds);
196 }
197
198 public Option getOption(String optionId)
199 {
200 return GenerationOptionMetaData.getOptionWithId(_options, optionId);
201 }
202
203 } /* end inner class OptionGroup */
204
205 } /* end class GenerationMetaData */
This page was automatically generated by Maven