1 package org.apache.turbine.om.security;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 import java.util.Collections;
58 import java.util.HashMap;
59 import java.util.Map;
60
61 import org.apache.torque.om.BaseObject;
62
63 /***
64 * This class represents a generic object used in the Access Control Lists.
65 *
66 * @author <a href="mailto:frank.kim@clearink.com">Frank Y. Kim</a>
67 * @author <a href="mailto:john.mcnally@clearink.com">John D. McNally</a>
68 * @author <a href="mailto:bmclaugh@algx.net">Brett McLaughlin</a>
69 * @author <a href="mailto:Rafal.Krzewski@e-point.pl">Rafal Krzewski</a>
70 * @version $Id: SecurityObject.java,v 1.6 2003/06/27 22:09:38 mpoeschl Exp $
71 */
72 public abstract class SecurityObject extends BaseObject implements Comparable
73 {
74 /*** The name of this object. */
75 private String name;
76
77 /*** The id of this object */
78 private int id;
79
80 /*** The attributes of this object. */
81 private Map attributes;
82
83 /***
84 * Constructs a new SecurityObject
85 */
86 public SecurityObject()
87 {
88 this("");
89 }
90
91 /***
92 * Constructs a new SecurityObject with the specified name.
93 *
94 * @param name The name of the new object.
95 */
96 public SecurityObject(String name)
97 {
98 setName(name);
99 setId(0);
100 setAttributes(Collections.synchronizedMap(new HashMap()));
101 }
102
103 /***
104 * Returns a Map containing this object's attributes.
105 *
106 * @return the object's attributes.
107 */
108 public Map getAttributes()
109 {
110 return attributes;
111 }
112
113 /***
114 * Replaces this object's attributes with the specified Map.
115 *
116 * @param attributes The new attributes of the object.
117 */
118 public void setAttributes(Map attributes)
119 {
120 this.attributes = attributes;
121 }
122
123 /***
124 * Retrieves the value of specific attribute of this object.
125 *
126 * @param name the name of the attribute
127 * @return the value of the attribute
128 */
129 public Object getAttribute(String name)
130 {
131 return attributes.get(name);
132 }
133
134 /***
135 * Sets the value of specific attribute of this object.
136 *
137 * @param name the name of the attribute
138 * @param value the value of the attribute
139 */
140 public void setAttribute(String name, Object value)
141 {
142 attributes.put(name, value);
143 }
144
145 /***
146 * Returns the name of this object.
147 *
148 * @return The name of the object.
149 */
150 public String getName()
151 {
152 return name;
153 }
154
155 /***
156 * Sets the name of this object.
157 *
158 * @param name The name of the object.
159 */
160 public void setName(String name)
161 {
162 this.name = name;
163 }
164
165 /***
166 * Unused. There is an ID column in the
167 * database scheme but it doesn't seem
168 * to be used.
169 *
170 * @return 0
171 */
172 public int getId()
173 {
174 return id;
175 }
176
177 /***
178 * Unused. There is an ID column in the
179 * database scheme but it doesn't seem
180 * to be used.
181 *
182 * @return null
183 */
184 public Integer getIdAsObj()
185 {
186 return new Integer(id);
187 }
188
189 /***
190 * Unused. There is an ID column in the
191 * database scheme but it doesn't seem
192 * to be used.
193 *
194 * @param id The id of the User.
195 */
196 public void setId(int id)
197 {
198 this.id = id;
199 }
200
201 /***
202 * Used for ordering SecurityObjects.
203 *
204 * @param obj The Object to compare to.
205 * @return -1 if the name of the other object is lexically greater than this
206 * group, 1 if it is lexically lesser, 0 if they are equal.
207 */
208 public int compareTo(Object obj)
209 {
210 if (this.getClass() != obj.getClass())
211 {
212 throw new ClassCastException();
213 }
214 String name1 = ((SecurityObject) obj).getName();
215 String name2 = this.getName();
216
217 return name2.compareTo(name1);
218 }
219
220 /***
221 * Returns a textual representation of this object, consisted by
222 * it's name and attributes.
223 *
224 * @return a textual representation of this group.
225 */
226 public String toString()
227 {
228 return (getName() + ':' + getAttributes().toString());
229 }
230 }