001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements. See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership. The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License. You may obtain a copy of the License at
009 *
010 * http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing,
013 * software distributed under the License is distributed on an
014 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015 * KIND, either express or implied. See the License for the
016 * specific language governing permissions and limitations
017 * under the License.
018 *
019 */
020 package org.apache.directory.shared.ldap.trigger;
021
022
023 import org.apache.directory.shared.ldap.name.LdapDN;
024
025
026 /**
027 * An entity that represents a stored procedure parameter which can be
028 * specified in an LDAP Trigger Specification.
029 *
030 * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
031 * @version $Rev:$, $Date:$
032 */
033 public abstract class StoredProcedureParameter
034 {
035 public static class Generic_LDAP_CONTEXT extends StoredProcedureParameter
036 {
037 private LdapDN ctxName;
038
039 private Generic_LDAP_CONTEXT( LdapDN ctxName )
040 {
041 super( "$ldapContext" );
042 this.ctxName = ctxName;
043 }
044
045 public static StoredProcedureParameter instance( LdapDN ctxName )
046 {
047 return new Generic_LDAP_CONTEXT( ctxName );
048 }
049
050 public LdapDN getCtxName()
051 {
052 return ctxName;
053 }
054
055 public String toString()
056 {
057 return name + " \"" + ctxName.getUpName() + "\"";
058 }
059 }
060
061
062 public static class Generic_OPERATION_PRINCIPAL extends StoredProcedureParameter
063 {
064 private static Generic_OPERATION_PRINCIPAL instance = new Generic_OPERATION_PRINCIPAL( "$operationPrincipal" );
065
066 private Generic_OPERATION_PRINCIPAL( String identifier )
067 {
068 super( identifier );
069 }
070
071 public static StoredProcedureParameter instance()
072 {
073 return instance;
074 }
075 }
076
077
078 protected final String name;
079
080
081 protected StoredProcedureParameter( String name )
082 {
083 this.name = name;
084 }
085
086
087 /**
088 * Returns the name of this Stored Procedure Parameter.
089 */
090 public String getName()
091 {
092 return name;
093 }
094
095
096 public String toString()
097 {
098 return name;
099 }
100
101
102 /**
103 * @see java.lang.Object#hashCode()
104 * @return the instance's hash code
105 */
106 public int hashCode()
107 {
108 int h = 37;
109
110 h = h*17 + ( ( name == null ) ? 0 : name.hashCode() );
111
112 return h;
113 }
114
115
116 /* (non-Javadoc)
117 * @see java.lang.Object#equals(java.lang.Object)
118 */
119 public boolean equals( Object obj )
120 {
121 if ( this == obj )
122 return true;
123 if ( obj == null )
124 return false;
125 if ( getClass() != obj.getClass() )
126 return false;
127 final StoredProcedureParameter other = ( StoredProcedureParameter ) obj;
128 if ( name == null )
129 {
130 if ( other.name != null )
131 return false;
132 }
133 else if ( !name.equals( other.name ) )
134 return false;
135 return true;
136 }
137
138
139 public static class Modify_OBJECT extends StoredProcedureParameter
140 {
141 private static Modify_OBJECT instance = new Modify_OBJECT( "$object" );
142
143 private Modify_OBJECT( String identifier )
144 {
145 super( identifier );
146 }
147
148 public static StoredProcedureParameter instance()
149 {
150 return instance;
151 }
152 }
153
154
155 public static class Modify_MODIFICATION extends StoredProcedureParameter
156 {
157 private static Modify_MODIFICATION instance = new Modify_MODIFICATION( "$modification" );
158
159 private Modify_MODIFICATION( String identifier )
160 {
161 super( identifier );
162 }
163
164 public static StoredProcedureParameter instance()
165 {
166 return instance;
167 }
168 }
169
170
171 public static class Modify_OLD_ENTRY extends StoredProcedureParameter
172 {
173 private static Modify_OLD_ENTRY instance = new Modify_OLD_ENTRY( "$oldEntry" );
174
175 private Modify_OLD_ENTRY( String identifier )
176 {
177 super( identifier );
178 }
179
180 public static StoredProcedureParameter instance()
181 {
182 return instance;
183 }
184 }
185
186
187 public static class Modify_NEW_ENTRY extends StoredProcedureParameter
188 {
189 private static Modify_NEW_ENTRY instance = new Modify_NEW_ENTRY( "$newEntry" );
190
191 private Modify_NEW_ENTRY( String identifier )
192 {
193 super( identifier );
194 }
195
196 public static StoredProcedureParameter instance()
197 {
198 return instance;
199 }
200 }
201
202
203 public static class Add_ENTRY extends StoredProcedureParameter
204 {
205 private static Add_ENTRY instance = new Add_ENTRY( "$entry" );
206
207 private Add_ENTRY( String identifier )
208 {
209 super( identifier );
210 }
211
212 public static StoredProcedureParameter instance()
213 {
214 return instance;
215 }
216 }
217
218
219 public static class Add_ATTRIBUTES extends StoredProcedureParameter
220 {
221 private static Add_ATTRIBUTES instance = new Add_ATTRIBUTES( "$attributes" );
222
223 private Add_ATTRIBUTES( String identifier )
224 {
225 super( identifier );
226 }
227
228 public static StoredProcedureParameter instance()
229 {
230 return instance;
231 }
232 }
233
234
235 public static class Delete_NAME extends StoredProcedureParameter
236 {
237 private static Delete_NAME instance = new Delete_NAME( "$name" );
238
239 private Delete_NAME( String identifier )
240 {
241 super( identifier );
242 }
243
244 public static StoredProcedureParameter instance()
245 {
246 return instance;
247 }
248 }
249
250
251 public static class Delete_DELETED_ENTRY extends StoredProcedureParameter
252 {
253 private static Delete_DELETED_ENTRY instance = new Delete_DELETED_ENTRY( "$deletedEntry" );
254
255 private Delete_DELETED_ENTRY( String identifier )
256 {
257 super( identifier );
258 }
259
260 public static StoredProcedureParameter instance()
261 {
262 return instance;
263 }
264 }
265
266
267 public static class ModifyDN_ENTRY extends StoredProcedureParameter
268 {
269 private static ModifyDN_ENTRY instance = new ModifyDN_ENTRY( "$entry" );
270
271 private ModifyDN_ENTRY( String identifier )
272 {
273 super( identifier );
274 }
275
276 public static StoredProcedureParameter instance()
277 {
278 return instance;
279 }
280 }
281
282
283 public static class ModifyDN_NEW_RDN extends StoredProcedureParameter
284 {
285 private static ModifyDN_NEW_RDN instance = new ModifyDN_NEW_RDN( "$newrdn" );
286
287 private ModifyDN_NEW_RDN( String identifier )
288 {
289 super( identifier );
290 }
291
292 public static StoredProcedureParameter instance()
293 {
294 return instance;
295 }
296 }
297
298
299 public static class ModifyDN_DELETE_OLD_RDN extends StoredProcedureParameter
300 {
301 private static ModifyDN_DELETE_OLD_RDN instance = new ModifyDN_DELETE_OLD_RDN( "$deleteoldrdn" );
302
303 private ModifyDN_DELETE_OLD_RDN( String identifier )
304 {
305 super( identifier );
306 }
307
308 public static StoredProcedureParameter instance()
309 {
310 return instance;
311 }
312 }
313
314
315 public static class ModifyDN_NEW_SUPERIOR extends StoredProcedureParameter
316 {
317 private static ModifyDN_NEW_SUPERIOR instance = new ModifyDN_NEW_SUPERIOR( "$newSuperior" );
318
319 private ModifyDN_NEW_SUPERIOR( String identifier )
320 {
321 super( identifier );
322 }
323
324 public static StoredProcedureParameter instance()
325 {
326 return instance;
327 }
328 }
329
330
331 public static class ModifyDN_OLD_RDN extends StoredProcedureParameter
332 {
333 private static ModifyDN_OLD_RDN instance = new ModifyDN_OLD_RDN( "$oldRDN" );
334
335 private ModifyDN_OLD_RDN( String identifier )
336 {
337 super( identifier );
338 }
339
340 public static StoredProcedureParameter instance()
341 {
342 return instance;
343 }
344 }
345
346
347 public static class ModifyDN_OLD_SUPERIOR_DN extends StoredProcedureParameter
348 {
349 private static ModifyDN_OLD_SUPERIOR_DN instance = new ModifyDN_OLD_SUPERIOR_DN( "$oldRDN" );
350
351 private ModifyDN_OLD_SUPERIOR_DN( String identifier )
352 {
353 super( identifier );
354 }
355
356 public static StoredProcedureParameter instance()
357 {
358 return instance;
359 }
360 }
361
362
363 public static class ModifyDN_NEW_DN extends StoredProcedureParameter
364 {
365 private static ModifyDN_NEW_DN instance = new ModifyDN_NEW_DN( "$oldRDN" );
366
367 private ModifyDN_NEW_DN( String identifier )
368 {
369 super( identifier );
370 }
371
372 public static StoredProcedureParameter instance()
373 {
374 return instance;
375 }
376 }
377 }