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_impl;
21
22
23 import org.apache.directory.api.asn1.DecoderException;
24 import org.apache.directory.api.asn1.ber.tlv.BerValue;
25 import org.apache.directory.api.asn1.util.Asn1Buffer;
26 import org.apache.directory.api.ldap.codec.api.AbstractControlFactory;
27 import org.apache.directory.api.ldap.codec.api.ControlFactory;
28 import org.apache.directory.api.ldap.codec.api.LdapApiService;
29 import org.apache.directory.api.ldap.extras.controls.syncrepl.syncRequest.SyncRequestValue;
30 import org.apache.directory.api.ldap.extras.controls.syncrepl.syncRequest.SyncRequestValueImpl;
31 import org.apache.directory.api.ldap.model.message.Control;
32
33
34
35
36
37
38
39
40 public class SyncRequestValueFactory extends AbstractControlFactory<SyncRequestValue>
41 {
42
43
44
45
46
47 public SyncRequestValueFactory( LdapApiService codec )
48 {
49 super( codec, SyncRequestValue.OID );
50 }
51
52
53
54
55
56 @Override
57 public SyncRequestValue newControl()
58 {
59 return new SyncRequestValueImpl();
60 }
61
62
63 @Override
64 public void encodeValue( Asn1Buffer buffer, Control control )
65 {
66 int start = buffer.getPos();
67 SyncRequestValue syncRequestValue = ( SyncRequestValue ) control;
68
69
70 if ( syncRequestValue.isReloadHint() )
71 {
72 BerValue.encodeBoolean( buffer, true );
73 }
74
75
76 if ( syncRequestValue.getCookie() != null )
77 {
78 BerValue.encodeOctetString( buffer, syncRequestValue.getCookie() );
79 }
80
81
82 BerValue.encodeEnumerated( buffer, syncRequestValue.getMode().getValue() );
83
84
85 BerValue.encodeSequence( buffer, start );
86 }
87
88
89
90
91
92 @Override
93 public void decodeValue( Control control, byte[] controlBytes ) throws DecoderException
94 {
95 decodeValue( new SyncRequestValueContainer( control ), control, controlBytes );
96 }
97 }