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.codec.api;
21
22 import java.nio.ByteBuffer;
23
24 import org.apache.directory.api.asn1.DecoderException;
25 import org.apache.directory.api.asn1.ber.Asn1Container;
26 import org.apache.directory.api.asn1.ber.Asn1Decoder;
27 import org.apache.directory.api.asn1.util.Asn1Buffer;
28 import org.apache.directory.api.ldap.model.message.Control;
29
30
31
32
33
34
35
36 public abstract class AbstractControlFactory<C extends Control> implements ControlFactory<C>
37 {
38
39 protected LdapApiService codec;
40
41
42 protected String oid;
43
44
45
46
47
48
49
50
51 protected AbstractControlFactory( LdapApiService codec, String oid )
52 {
53 this.codec = codec;
54 this.oid = oid;
55 }
56
57
58
59
60
61 @Override
62 public String getOid()
63 {
64 return oid;
65 }
66
67
68
69
70 @Override
71 public void encodeValue( Asn1Buffer buffer, Control control )
72 {
73
74 }
75
76
77
78
79
80 @Override
81 public void decodeValue( Control control, byte[] controlBytes ) throws DecoderException
82 {
83
84 }
85
86
87
88
89
90 @Override
91 public void decodeValue( ControlContainer container, Control control, byte[] controlBytes ) throws DecoderException
92 {
93 ByteBuffer buffer = ByteBuffer.wrap( controlBytes );
94 container.setControl( control );
95 Asn1Decoder.decode( buffer, ( Asn1Container ) container );
96 }
97 }