1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.jetspeed.om.impl;
18
19 import java.io.Serializable;
20 import java.util.ArrayList;
21 import java.util.Collection;
22 import java.util.Iterator;
23
24
25 import org.apache.jetspeed.om.common.ParameterComposite;
26 import org.apache.pluto.om.common.Parameter;
27 import org.apache.pluto.om.common.ParameterSet;
28 import org.apache.pluto.om.common.ParameterSetCtrl;
29
30 /***
31 *
32 * ParameterSetImpl
33 *
34 * @author <a href="mailto:weaver@apache.org">Scott T. Weaver</a>
35 * @version $Id: ParameterSetImpl.java 516448 2007-03-09 16:25:47Z ate $
36 *
37 */
38 public abstract class ParameterSetImpl implements ParameterSet, ParameterSetCtrl, Serializable
39 {
40 protected Collection innerCollection;
41
42 /***
43 * @param wrappedSet
44 */
45 public ParameterSetImpl(Collection collection)
46 {
47 super();
48 this.innerCollection = collection;
49 }
50
51 public ParameterSetImpl()
52 {
53 super();
54 this.innerCollection = new ArrayList();
55 }
56
57 /***
58 * @see org.apache.pluto.om.common.ParameterSet#iterator()
59 */
60 public Iterator iterator()
61 {
62 return innerCollection.iterator();
63 }
64
65 /***
66 * @see org.apache.pluto.om.common.ParameterSet#get(java.lang.String)
67 */
68 public Parameter get(String name)
69 {
70 Iterator itr = innerCollection.iterator();
71 while (itr.hasNext())
72 {
73 Parameter p = (Parameter) itr.next();
74 if (p.getName().equals(name))
75 {
76 return p;
77 }
78 }
79
80 return null;
81 }
82
83 /***
84 * @see org.apache.pluto.om.common.ParameterSetCtrl#add(java.lang.String, java.lang.String)
85 */
86 public Parameter add(String name, String value)
87 {
88 ParameterComposite p = newParameterInstance();
89 p.setName(name);
90 p.setValue(value);
91 add(p);
92 return p;
93 }
94
95 /***
96 * @see org.apache.pluto.om.common.ParameterSetCtrl#remove(java.lang.String)
97 */
98 public Parameter remove(String name)
99 {
100 Iterator itr = innerCollection.iterator();
101 Parameter removeMe = null;
102 while (itr.hasNext())
103 {
104 Parameter p = (Parameter) itr.next();
105 if (p.getName().equals(name))
106 {
107 removeMe = p;
108 break;
109 }
110 }
111
112 if (removeMe != null)
113 {
114 innerCollection.remove(removeMe);
115 }
116
117 return removeMe;
118 }
119
120 /***
121 * @see org.apache.pluto.om.common.ParameterSetCtrl#remove(org.apache.pluto.om.common.Parameter)
122 */
123 public void remove(Parameter parameter)
124 {
125 remove((Object) parameter);
126 }
127
128 /***
129 * @see java.util.Collection#add(java.lang.Object)
130 * <strong>NOTE: </code>This method will effectively convert any class
131 * implementing the <code>org.apache.jetspeed.common.ParameterComposite</code>
132 * that is NOT of the type returned by the <code>getParameterClass()</code> method it is
133 * to converted to the correct Parameter implementation.
134 */
135 public boolean add(Object o)
136 {
137 ParameterComposite p = (ParameterComposite) o;
138
139 return innerCollection.add(p);
140 }
141
142 /***
143 * @see java.util.Collection#remove(java.lang.Object)
144 */
145 public boolean remove(Object o)
146 {
147 Parameter p = (Parameter) o;
148
149 return innerCollection.remove(p);
150 }
151
152 /***
153 * Creates a Parameter class this Collection will be working with.
154 * <br>
155 */
156 protected abstract ParameterComposite newParameterInstance();
157
158 /***
159 * @return
160 */
161 public Collection getInnerCollection()
162 {
163 return innerCollection;
164 }
165
166 /***
167 * @param collection
168 */
169 public void setInnerCollection(Collection collection)
170 {
171 innerCollection = collection;
172 }
173
174 }