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.gracefulShutdown;
21
22
23 import org.apache.directory.api.asn1.DecoderException;
24 import org.apache.directory.api.ldap.codec.api.ExtendedOperationFactory;
25 import org.apache.directory.api.ldap.codec.api.LdapApiService;
26 import org.apache.directory.api.ldap.extras.extended.gracefulShutdown.GracefulShutdownRequest;
27 import org.apache.directory.api.ldap.extras.extended.gracefulShutdown.GracefulShutdownRequestImpl;
28 import org.apache.directory.api.ldap.extras.extended.gracefulShutdown.GracefulShutdownResponse;
29 import org.apache.directory.api.ldap.extras.extended.gracefulShutdown.GracefulShutdownResponseImpl;
30 import org.apache.directory.api.ldap.model.message.ExtendedRequest;
31 import org.apache.directory.api.ldap.model.message.ExtendedResponse;
32
33
34
35
36
37
38
39
40 public class GracefulShutdownFactory implements ExtendedOperationFactory
41 {
42 private LdapApiService codec;
43
44
45 public GracefulShutdownFactory( LdapApiService codec )
46 {
47 this.codec = codec;
48 }
49
50
51
52
53
54 public String getOid()
55 {
56 return GracefulShutdownRequest.EXTENSION_OID;
57 }
58
59
60
61
62
63 public GracefulShutdownResponse newResponse( byte[] encodedValue ) throws DecoderException
64 {
65 GracefulShutdownResponseDecorator response = new GracefulShutdownResponseDecorator(
66 codec, new GracefulShutdownResponseImpl() );
67 response.setResponseValue( encodedValue );
68 return response;
69 }
70
71
72
73
74
75 public GracefulShutdownRequest newRequest( byte[] value )
76 {
77 GracefulShutdownRequestDecorator req = new GracefulShutdownRequestDecorator( codec,
78 new GracefulShutdownRequestImpl() );
79 req.setRequestValue( value );
80 return req;
81 }
82
83
84
85
86
87 public ExtendedRequest decorate( ExtendedRequest modelRequest )
88 {
89 if ( modelRequest instanceof GracefulShutdownRequestDecorator )
90 {
91 return modelRequest;
92 }
93
94 return new GracefulShutdownRequestDecorator( codec, ( GracefulShutdownRequest ) modelRequest );
95 }
96
97
98
99
100
101 public ExtendedResponse decorate( ExtendedResponse decoratedMessage )
102 {
103 if ( decoratedMessage instanceof GracefulShutdownResponseDecorator )
104 {
105 return decoratedMessage;
106 }
107
108 return new GracefulShutdownResponseDecorator( codec, ( GracefulShutdownResponse ) decoratedMessage );
109 }
110 }