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.server.changepw.protocol;
22
23
24 import java.io.IOException;
25
26 import org.apache.directory.server.changepw.io.ChangePasswordErrorEncoder;
27 import org.apache.directory.server.changepw.io.ChangePasswordReplyEncoder;
28 import org.apache.directory.server.changepw.messages.ChangePasswordError;
29 import org.apache.directory.server.changepw.messages.ChangePasswordReply;
30 import org.apache.mina.common.ByteBuffer;
31 import org.apache.mina.common.IoSession;
32 import org.apache.mina.filter.codec.ProtocolEncoderAdapter;
33 import org.apache.mina.filter.codec.ProtocolEncoderOutput;
34
35
36
37
38
39
40 public class ChangePasswordUdpEncoder extends ProtocolEncoderAdapter
41 {
42 public void encode( IoSession session, Object message, ProtocolEncoderOutput out ) throws IOException
43 {
44 ByteBuffer buf = ByteBuffer.allocate( 512 );
45
46 if ( message instanceof ChangePasswordReply )
47 {
48 encodeReply( ( ChangePasswordReply ) message, buf );
49 }
50 else
51 {
52 if ( message instanceof ChangePasswordError )
53 {
54 encodeError( ( ChangePasswordError ) message, buf );
55 }
56 }
57
58 buf.flip();
59
60 out.write( buf );
61 }
62
63
64 private void encodeReply( ChangePasswordReply reply, ByteBuffer buf ) throws IOException
65 {
66 ChangePasswordReplyEncoder encoder = new ChangePasswordReplyEncoder();
67
68 encoder.encode( buf.buf(), reply );
69 }
70
71
72 private void encodeError( ChangePasswordError error, ByteBuffer buf ) throws IOException
73 {
74 ChangePasswordErrorEncoder encoder = new ChangePasswordErrorEncoder();
75
76 encoder.encode( buf.buf(), error );
77 }
78 }