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 = super.hashCode();
135
136 h = h * 17 + type.getValue();
137
138 if ( cookie != null )
139 {
140 for ( byte b : cookie )
141 {
142 h = h * 17 + b;
143 }
144 }
145
146 if ( entryUuid != null )
147 {
148 for ( byte b : entryUuid )
149 {
150 h = h * 17 + b;
151 }
152 }
153
154 return h;
155 }
156
157
158
159
160
161 @Override
162 public boolean equals( Object o )
163 {
164 if ( this == o )
165 {
166 return true;
167 }
168
169 if ( !( o instanceof SyncStateValue ) )
170 {
171 return false;
172 }
173
174 SyncStateValue otherControl = ( SyncStateValue ) o;
175
176 return super.equals( o )
177 && ( 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 }