1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.directory.api.ldap.model.message.controls;
21
22
23
24
25
26
27 public class PersistentSearchImpl extends AbstractControl implements PersistentSearch
28 {
29
30
31
32
33
34
35 private boolean changesOnly = true;
36
37
38
39
40
41 private boolean returnECs = false;
42
43
44
45
46
47
48
49
50
51
52
53 private int changeTypes = CHANGE_TYPES_MAX;
54
55
56
57
58
59
60 public PersistentSearchImpl()
61 {
62 super( OID );
63 }
64
65
66
67
68
69 @Override
70 public void setChangesOnly( boolean changesOnly )
71 {
72 this.changesOnly = changesOnly;
73 }
74
75
76
77
78
79 @Override
80 public boolean isChangesOnly()
81 {
82 return changesOnly;
83 }
84
85
86
87
88
89 @Override
90 public void setReturnECs( boolean returnECs )
91 {
92 this.returnECs = returnECs;
93 }
94
95
96
97
98
99 @Override
100 public boolean isReturnECs()
101 {
102 return returnECs;
103 }
104
105
106
107
108
109 @Override
110 public void setChangeTypes( int changeTypes )
111 {
112 this.changeTypes = changeTypes;
113 }
114
115
116
117
118
119 @Override
120 public int getChangeTypes()
121 {
122 return changeTypes;
123 }
124
125
126
127
128
129 @Override
130 public boolean isNotificationEnabled( ChangeType changeType )
131 {
132 return ( changeType.getValue() & changeTypes ) > 0;
133 }
134
135
136
137
138
139 @Override
140 public void enableNotification( ChangeType changeType )
141 {
142 changeTypes |= changeType.getValue();
143 }
144
145
146
147
148
149 @Override
150 public void disableNotification( ChangeType changeType )
151 {
152 changeTypes &= ~changeType.getValue();
153 }
154
155
156
157
158
159 @Override
160 public int hashCode()
161 {
162 int h = super.hashCode();
163
164 h = h * 37 + ( changesOnly ? 1 : 0 );
165 h = h * 37 + ( returnECs ? 1 : 0 );
166 h = h * 37 + changeTypes;
167
168 return h;
169 }
170
171
172
173
174
175 @Override
176 public boolean equals( Object other )
177 {
178 if ( this == other )
179 {
180 return true;
181 }
182
183 if ( !( other instanceof PersistentSearch ) )
184 {
185 return false;
186 }
187
188 PersistentSearch otherControl = ( PersistentSearch ) other;
189
190 return super.equals( other )
191 && ( changesOnly == otherControl.isChangesOnly() )
192 && ( returnECs == otherControl.isReturnECs() )
193 && ( changeTypes == otherControl.getChangeTypes() );
194 }
195
196
197
198
199
200 @Override
201 public String toString()
202 {
203 StringBuilder sb = new StringBuilder();
204
205 sb.append( " Persistant Search Control\n" );
206 sb.append( " oid : " ).append( getOid() ).append( '\n' );
207 sb.append( " critical : " ).append( isCritical() ).append( '\n' );
208 sb.append( " changeTypes : '" ).append( changeTypes ).append( "'\n" );
209 sb.append( " changesOnly : '" ).append( changesOnly ).append( "'\n" );
210 sb.append( " returnECs : '" ).append( returnECs ).append( "'\n" );
211
212 return sb.toString();
213 }
214 }