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.extras.controls.syncrepl.syncDone;
21
22
23 import java.util.Arrays;
24
25 import org.apache.directory.api.ldap.model.message.controls.AbstractControl;
26 import org.apache.directory.api.util.Strings;
27
28
29
30
31
32
33
34
35 public class SyncDoneValueImpl extends AbstractControl implements SyncDoneValue
36 {
37
38 private byte[] cookie;
39
40
41 private boolean refreshDeletes;
42
43
44
45
46
47 public SyncDoneValueImpl()
48 {
49 super( OID );
50 }
51
52
53
54
55
56
57
58
59 public SyncDoneValueImpl( boolean isCritical )
60 {
61 super( OID, isCritical );
62 }
63
64
65
66
67
68 @Override
69 public byte[] getCookie()
70 {
71 return cookie;
72 }
73
74
75
76
77
78 @Override
79 public void setCookie( byte[] cookie )
80 {
81 this.cookie = cookie;
82 }
83
84
85
86
87
88 @Override
89 public boolean isRefreshDeletes()
90 {
91 return refreshDeletes;
92 }
93
94
95
96
97
98 @Override
99 public void setRefreshDeletes( boolean refreshDeletes )
100 {
101 this.refreshDeletes = refreshDeletes;
102 }
103
104
105
106
107
108 @Override
109 public int hashCode()
110 {
111 int h = super.hashCode();
112
113 h = h * 17 + ( refreshDeletes ? 1 : 0 );
114
115 if ( cookie != null )
116 {
117 for ( byte b : cookie )
118 {
119 h = h * 17 + b;
120 }
121 }
122
123 return h;
124 }
125
126
127
128
129
130 @Override
131 public boolean equals( Object o )
132 {
133 if ( this == o )
134 {
135 return true;
136 }
137
138 if ( !( o instanceof SyncDoneValue ) )
139 {
140 return false;
141 }
142
143 SyncDoneValue otherControl = ( SyncDoneValue ) o;
144
145 return super.equals( o )
146 && ( refreshDeletes == otherControl.isRefreshDeletes() )
147 && ( Arrays.equals( cookie, otherControl.getCookie() ) )
148 && ( isCritical() == otherControl.isCritical() );
149 }
150
151
152
153
154
155 @Override
156 public String toString()
157 {
158 StringBuilder sb = new StringBuilder();
159
160 sb.append( " SyncDoneValue control :\n" );
161 sb.append( " oid : " ).append( getOid() ).append( '\n' );
162 sb.append( " critical : " ).append( isCritical() ).append( '\n' );
163 sb.append( " cookie : '" ).append( Strings.dumpBytes( getCookie() ) ).append( "'\n" );
164 sb.append( " refreshDeletes : '" ).append( isRefreshDeletes() ).append( "'\n" );
165
166 return sb.toString();
167 }
168 }