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.interceptor.context;
21
22
23 import org.apache.directory.server.core.CoreSession;
24 import org.apache.directory.server.core.entry.ClonedServerEntry;
25 import org.apache.directory.shared.ldap.message.MessageTypeEnum;
26 import org.apache.directory.shared.ldap.message.ModifyDnRequest;
27 import org.apache.directory.shared.ldap.name.LdapDN;
28 import org.apache.directory.shared.ldap.name.Rdn;
29
30
31
32
33
34
35
36
37
38
39
40 public class RenameOperationContext extends AbstractChangeOperationContext
41 {
42
43 private Rdn newRdn;
44
45
46 private LdapDN newDn;
47
48
49 private boolean delOldDn;
50
51
52 private ClonedServerEntry alteredEntry;
53
54
55
56
57
58 public RenameOperationContext( CoreSession session )
59 {
60 super( session );
61 }
62
63
64
65
66
67
68
69
70
71 public RenameOperationContext( CoreSession session, LdapDN oldDn, Rdn newRdn, boolean delOldDn )
72 {
73 super( session, oldDn );
74 this.newRdn = newRdn;
75 this.delOldDn = delOldDn;
76 }
77
78
79 public RenameOperationContext( CoreSession session, ModifyDnRequest modifyDnRequest )
80 {
81 super( session, modifyDnRequest.getName() );
82 this.newRdn = modifyDnRequest.getNewRdn();
83
84 if ( newRdn == null )
85 {
86 throw new IllegalStateException( "newRdn must not be null for a rename: " + modifyDnRequest );
87 }
88
89 this.delOldDn = modifyDnRequest.getDeleteOldRdn();
90 this.requestControls = modifyDnRequest.getControls();
91 }
92
93
94
95
96
97 public boolean getDelOldDn()
98 {
99 return delOldDn;
100 }
101
102
103
104
105
106
107 public void setDelOldDn( boolean delOldDn )
108 {
109 this.delOldDn = delOldDn;
110 }
111
112
113
114
115
116 public LdapDN getNewDn() throws Exception
117 {
118 if ( newDn == null )
119 {
120 newDn = new LdapDN( getDn().getUpName() );
121 newDn.remove( newDn.size() - 1 );
122 newDn.add( newRdn.getUpName() );
123 newDn.normalize( session.getDirectoryService().getRegistries()
124 .getAttributeTypeRegistry().getNormalizerMapping() );
125 }
126
127 return newDn;
128 }
129
130
131
132
133
134 public Rdn getNewRdn()
135 {
136 return newRdn;
137 }
138
139
140
141
142
143
144 public void setNewRdn( Rdn newRdn )
145 {
146 this.newRdn = newRdn;
147 }
148
149
150
151
152
153 public String getName()
154 {
155 return MessageTypeEnum.MOD_DN_REQUEST.name();
156 }
157
158
159
160
161
162
163
164
165 public ClonedServerEntry getAlteredEntry()
166 {
167 return alteredEntry;
168 }
169
170
171 public void setAlteredEntry( ClonedServerEntry alteredEntry )
172 {
173 this.alteredEntry = alteredEntry;
174 }
175
176
177
178
179
180 public String toString()
181 {
182 return "RenameContext for old DN '" + getDn().getUpName() + "'" +
183 ", new RDN '" + newRdn + "'" +
184 ( delOldDn ? ", delete old Dn" : "" ) ;
185 }
186 }