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.ClonedServerEntry;
28 import org.apache.directory.server.core.entry.ServerEntry;
29 import org.apache.directory.server.core.interceptor.context.OperationContext;
30 import org.apache.directory.server.core.partition.ByPassConstants;
31 import org.apache.directory.shared.ldap.name.LdapDN;
32 import org.apache.directory.shared.ldap.trigger.StoredProcedureParameter;
33
34
35 public class DeleteStoredProcedureParameterInjector extends AbstractStoredProcedureParameterInjector
36 {
37 private LdapDN deletedEntryName;
38 private ServerEntry deletedEntry;
39
40
41 public DeleteStoredProcedureParameterInjector( OperationContext opContext, LdapDN deletedEntryName )
42 throws Exception
43 {
44 super( opContext );
45 this.deletedEntryName = deletedEntryName;
46 this.deletedEntry = getDeletedEntry( opContext );
47 Map<Class<?>, MicroInjector> injectors = super.getInjectors();
48 injectors.put( StoredProcedureParameter.Delete_NAME.class, $nameInjector );
49 injectors.put( StoredProcedureParameter.Delete_DELETED_ENTRY.class, $deletedEntryInjector );
50 }
51
52 MicroInjector $nameInjector = new MicroInjector()
53 {
54 public Object inject( OperationContext opContext, StoredProcedureParameter param ) throws Exception
55 {
56
57 return new LdapDN( deletedEntryName.getUpName() );
58 }
59 };
60
61 MicroInjector $deletedEntryInjector = new MicroInjector()
62 {
63 public Object inject( OperationContext opContext, StoredProcedureParameter param ) throws NamingException
64 {
65 return deletedEntry;
66 }
67 };
68
69
70 private ClonedServerEntry getDeletedEntry( OperationContext opContext ) throws Exception
71 {
72
73
74
75
76 return opContext.lookup( deletedEntryName, ByPassConstants.LOOKUP_EXCLUDING_OPR_ATTRS_BYPASS );
77 }
78 }