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.api.interceptor.context;
21
22
23 import org.apache.directory.api.ldap.model.message.MessageTypeEnum;
24 import org.apache.directory.api.ldap.model.message.ModifyDnRequest;
25 import org.apache.directory.api.ldap.model.message.controls.ManageDsaIT;
26 import org.apache.directory.api.ldap.model.name.Dn;
27 import org.apache.directory.api.ldap.model.name.Rdn;
28 import org.apache.directory.server.core.api.CoreSession;
29 import org.apache.directory.server.core.api.OperationEnum;
30 import org.apache.directory.server.i18n.I18n;
31
32
33
34
35
36
37
38
39
40
41 public class RenameOperationContext extends AbstractChangeOperationContext
42 {
43
44 protected Rdn newRdn;
45
46
47 protected Dn newDn;
48
49
50 private boolean deleteOldRdn;
51
52
53
54
55
56
57
58 public RenameOperationContext( CoreSession session )
59 {
60 super( session );
61
62 if ( session != null )
63 {
64 setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.RENAME ) );
65 }
66 }
67
68
69
70
71
72
73
74
75
76
77 public RenameOperationContext( CoreSession session, Dn oldDn, Rdn newRdn, boolean deleteOldRdn )
78 {
79 super( session, oldDn );
80 this.newRdn = newRdn;
81 this.deleteOldRdn = deleteOldRdn;
82
83 if ( session != null )
84 {
85 setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.RENAME ) );
86 }
87 }
88
89
90
91
92
93
94
95 public RenameOperationContext( CoreSession session, ModifyDnRequest modifyDnRequest )
96 {
97 super( session, modifyDnRequest.getName() );
98 this.newRdn = modifyDnRequest.getNewRdn();
99
100 if ( session != null )
101 {
102 setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.RENAME ) );
103 }
104
105 if ( newRdn == null )
106 {
107 throw new IllegalStateException( I18n.err( I18n.ERR_328, modifyDnRequest ) );
108 }
109
110 this.deleteOldRdn = modifyDnRequest.getDeleteOldRdn();
111 this.requestControls = modifyDnRequest.getControls();
112
113 if ( requestControls.containsKey( ManageDsaIT.OID ) )
114 {
115 ignoreReferral();
116 }
117 else
118 {
119 throwReferral();
120 }
121 }
122
123
124
125
126
127 public boolean getDeleteOldRdn()
128 {
129 return deleteOldRdn;
130 }
131
132
133
134
135
136
137 public void setDelOldDn( boolean deleteOldRdn )
138 {
139 this.deleteOldRdn = deleteOldRdn;
140 }
141
142
143
144
145
146 public Dn getNewDn()
147 {
148 return newDn;
149 }
150
151
152
153
154
155 public Rdn getNewRdn()
156 {
157 return newRdn;
158 }
159
160
161
162
163
164
165 public void setNewRdn( Rdn newRdn )
166 {
167 this.newRdn = newRdn;
168 }
169
170
171
172
173
174
175 public void setNewDn( Dn newDn )
176 {
177 this.newDn = newDn;
178 }
179
180
181
182
183
184 public String getName()
185 {
186 return MessageTypeEnum.MODIFYDN_REQUEST.name();
187 }
188
189
190
191
192
193 public String toString()
194 {
195 return "RenameContext for old Dn '" + getDn().getName() + "'" + ", new Rdn '" + newRdn + "'"
196 + ( deleteOldRdn ? ", delete old Rdn" : "" );
197 }
198 }