1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.directory.api.ldap.extras.controls.vlv_impl;
22
23
24 import org.apache.directory.api.asn1.DecoderException;
25 import org.apache.directory.api.asn1.ber.tlv.BerValue;
26 import org.apache.directory.api.asn1.util.Asn1Buffer;
27 import org.apache.directory.api.ldap.codec.api.AbstractControlFactory;
28 import org.apache.directory.api.ldap.codec.api.ControlFactory;
29 import org.apache.directory.api.ldap.codec.api.LdapApiService;
30 import org.apache.directory.api.ldap.extras.controls.vlv.VirtualListViewResponse;
31 import org.apache.directory.api.ldap.extras.controls.vlv.VirtualListViewResponseImpl;
32 import org.apache.directory.api.ldap.model.message.Control;
33
34
35
36
37
38
39
40 public class VirtualListViewResponseFactory extends AbstractControlFactory<VirtualListViewResponse>
41 {
42
43
44
45
46
47 public VirtualListViewResponseFactory( LdapApiService codec )
48 {
49 super( codec, VirtualListViewResponse.OID );
50 }
51
52
53
54
55
56 @Override
57 public VirtualListViewResponse newControl()
58 {
59 return new VirtualListViewResponseImpl();
60 }
61
62
63
64
65
66 @Override
67 public void encodeValue( Asn1Buffer buffer, Control control )
68 {
69 int start = buffer.getPos();
70 VirtualListViewResponse vlvResponse = ( VirtualListViewResponse ) control;
71
72
73 if ( vlvResponse.getContextId() != null )
74 {
75 BerValue.encodeOctetString( buffer, vlvResponse.getContextId() );
76 }
77
78 BerValue.encodeEnumerated( buffer, vlvResponse.getVirtualListViewResult().getValue() );
79
80
81 BerValue.encodeInteger( buffer, vlvResponse.getContentCount() );
82
83
84 BerValue.encodeInteger( buffer, vlvResponse.getTargetPosition() );
85
86
87 BerValue.encodeSequence( buffer, start );
88 }
89
90
91
92
93
94 @Override
95 public void decodeValue( Control control, byte[] controlBytes ) throws DecoderException
96 {
97 decodeValue( new VirtualListViewResponseContainer( control ), control, controlBytes );
98 }
99 }