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.extended.ads_impl.cancel;
21
22
23 import java.nio.ByteBuffer;
24
25 import org.apache.directory.api.asn1.DecoderException;
26 import org.apache.directory.api.asn1.ber.Asn1Decoder;
27 import org.apache.directory.api.asn1.ber.tlv.BerValue;
28 import org.apache.directory.api.asn1.util.Asn1Buffer;
29 import org.apache.directory.api.ldap.codec.api.AbstractExtendedOperationFactory;
30 import org.apache.directory.api.ldap.codec.api.ExtendedOperationFactory;
31 import org.apache.directory.api.ldap.codec.api.LdapApiService;
32 import org.apache.directory.api.ldap.extras.extended.cancel.CancelRequest;
33 import org.apache.directory.api.ldap.extras.extended.cancel.CancelRequestImpl;
34 import org.apache.directory.api.ldap.extras.extended.cancel.CancelResponse;
35 import org.apache.directory.api.ldap.extras.extended.cancel.CancelResponseImpl;
36 import org.apache.directory.api.ldap.model.message.ExtendedRequest;
37
38
39
40
41
42
43
44
45 public class CancelFactory extends AbstractExtendedOperationFactory
46 {
47
48
49
50
51
52 public CancelFactory( LdapApiService codec )
53 {
54 super( codec, CancelRequest.EXTENSION_OID );
55 }
56
57
58
59
60
61 @Override
62 public CancelRequest newRequest()
63 {
64 return new CancelRequestImpl();
65 }
66
67
68
69
70
71 @Override
72 public CancelRequest newRequest( byte[] encodedValue ) throws DecoderException
73 {
74 CancelRequest cancelRequest = new CancelRequestImpl();
75 decodeValue( cancelRequest, encodedValue );
76
77 return cancelRequest;
78 }
79
80
81
82
83
84 @Override
85 public CancelResponse newResponse()
86 {
87 return new CancelResponseImpl();
88 }
89
90
91
92
93
94 @Override
95 public void decodeValue( ExtendedRequest extendedRequest, byte[] requestValue ) throws DecoderException
96 {
97 ByteBuffer bb = ByteBuffer.wrap( requestValue );
98 CancelRequestContainer container = new CancelRequestContainer();
99 container.setCancelRequest( ( CancelRequest ) extendedRequest );
100 Asn1Decoder.decode( bb, container );
101 }
102
103
104
105
106
107 @Override
108 public void encodeValue( Asn1Buffer buffer, ExtendedRequest extendedRequest )
109 {
110 int start = buffer.getPos();
111 CancelRequest cancelRequest = ( CancelRequest ) extendedRequest;
112
113
114 BerValue.encodeInteger( buffer, cancelRequest.getCancelId() );
115
116
117 BerValue.encodeSequence( buffer, start );
118
119 }
120 }