1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.directory.server.core.trigger;
21
22
23 import java.util.Map;
24
25 import javax.naming.NamingException;
26
27 import org.apache.directory.server.core.entry.ServerEntry;
28 import org.apache.directory.server.core.interceptor.context.OperationContext;
29 import org.apache.directory.shared.ldap.name.LdapDN;
30 import org.apache.directory.shared.ldap.trigger.StoredProcedureParameter;
31
32
33 public class AddStoredProcedureParameterInjector extends AbstractStoredProcedureParameterInjector
34 {
35 private LdapDN addedEntryName;
36 private ServerEntry addedEntry;
37
38
39 public AddStoredProcedureParameterInjector( OperationContext opContext, LdapDN addedEntryName,
40 ServerEntry addedEntry )
41 {
42 super( opContext );
43 this.addedEntryName = addedEntryName;
44 this.addedEntry = addedEntry;
45 Map<Class<?>, MicroInjector> injectors = super.getInjectors();
46 injectors.put( StoredProcedureParameter.Add_ENTRY.class, $entryInjector );
47 injectors.put( StoredProcedureParameter.Add_ATTRIBUTES.class, $attributesInjector );
48 }
49
50
51 MicroInjector $entryInjector = new MicroInjector()
52 {
53 public Object inject( OperationContext opContext, StoredProcedureParameter param ) throws NamingException
54 {
55
56 return new LdapDN( addedEntryName.getUpName() );
57 }
58 };
59
60
61 MicroInjector $attributesInjector = new MicroInjector()
62 {
63 public Object inject( OperationContext opContext, StoredProcedureParameter param ) throws NamingException
64 {
65 return addedEntry.clone();
66 }
67 };
68
69 }