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.syncState;
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 SyncStateValueImpl extends AbstractControl implements SyncStateValue
36 {
37
38 private SyncStateTypeEnum type;
39
40
41 private byte[] cookie;
42
43
44 private byte[] entryUuid;
45
46
47
48
49
50 public SyncStateValueImpl()
51 {
52 super( OID );
53 }
54
55
56
57
58
59
60
61
62 public SyncStateValueImpl( boolean isCritical )
63 {
64 super( OID, isCritical );
65 }
66
67
68
69
70
71 @Override
72 public byte[] getCookie()
73 {
74 return cookie;
75 }
76
77
78
79
80
81 @Override
82 public void setCookie( byte[] cookie )
83 {
84 this.cookie = cookie;
85 }
86
87
88
89
90
91 @Override
92 public SyncStateTypeEnum getSyncStateType()
93 {
94 return type;
95 }
96
97
98
99
100
101 @Override
102 public void setSyncStateType( SyncStateTypeEnum syncStateType )
103 {
104 this.type = syncStateType;
105 }
106
107
108
109
110
111 @Override
112 public byte[] getEntryUUID()
113 {
114 return entryUuid;
115 }
116
117
118
119
120
121 @Override
122 public void setEntryUUID( byte[] entryUUID )
123 {
124 this.entryUuid = entryUUID;
125 }
126
127
128
129
130
131 @Override
132 public int hashCode()
133 {
134 int h = 37;
135
136 h = h * 17 + super.hashCode();
137 h = h * 17 + type.getValue();
138
139 if ( cookie != null )
140 {
141 for ( byte b : cookie )
142 {
143 h = h * 17 + b;
144 }
145 }
146
147 if ( entryUuid != null )
148 {
149 for ( byte b : entryUuid )
150 {
151 h = h * 17 + b;
152 }
153 }
154
155 return h;
156 }
157
158
159
160
161
162 @Override
163 public boolean equals( Object o )
164 {
165 if ( !super.equals( o ) )
166 {
167 return false;
168 }
169
170 if ( !( o instanceof SyncStateValue ) )
171 {
172 return false;
173 }
174
175 SyncStateValue otherControl = ( SyncStateValue ) o;
176
177 return ( type == otherControl.getSyncStateType() )
178 && ( Arrays.equals( entryUuid, otherControl.getEntryUUID() ) )
179 && ( Arrays.equals( cookie, otherControl.getCookie() ) )
180 && ( isCritical() == otherControl.isCritical() );
181 }
182
183
184
185
186
187 @Override
188 public String toString()
189 {
190 StringBuilder sb = new StringBuilder();
191
192 sb.append( " SyncStateValue control :\n" );
193 sb.append( " oid : " ).append( getOid() ).append( '\n' );
194 sb.append( " critical : " ).append( isCritical() ).append( '\n' );
195 sb.append( " syncStateType : '" ).append( getSyncStateType() ).append( "'\n" );
196 sb.append( " entryUUID : '" ).append( Strings.dumpBytes( getEntryUUID() ) ).append( "'\n" );
197 sb.append( " cookie : '" ).append( Strings.dumpBytes( getCookie() ) ).append( "'\n" );
198
199 return sb.toString();
200 }
201 }