source: trunk/objectmq/src/omq/common/util/Serializers/JavaImp.java @ 9

Last change on this file since 9 was 9, checked in by stoda, 11 years ago

First commit

File size: 1.9 KB
Line 
1package omq.common.util.Serializers;
2
3import java.io.ByteArrayInputStream;
4import java.io.ByteArrayOutputStream;
5import java.io.ObjectInputStream;
6import java.io.ObjectOutputStream;
7
8import omq.common.message.Request;
9import omq.common.message.Response;
10import omq.exception.SerializerException;
11import omq.server.remote.request.RemoteObject;
12
13/**
14 *
15 * @author Sergi Toda <sergi.toda@estudiants.urv.cat>
16 *
17 */
18public class JavaImp implements ISerializer {
19
20        @Override
21        public byte[] serialize(Object obj) throws SerializerException {
22                try {
23                        ByteArrayOutputStream stream = new ByteArrayOutputStream();
24                        ObjectOutputStream output = new ObjectOutputStream(stream);
25                        output.writeObject(obj);
26
27                        output.flush();
28                        output.close();
29
30                        byte[] bArray = stream.toByteArray();
31
32                        stream.flush();
33                        stream.close();
34
35                        System.out.println("JavaImp serialize size = " + bArray.length);
36
37                        return bArray;
38                } catch (Exception e) {
39                        throw new SerializerException("Serialize -> " + e.getMessage(), e);
40                }
41        }
42
43        @Override
44        public Request deserializeRequest(byte[] bytes, RemoteObject obj) throws SerializerException {
45                try {
46                        ByteArrayInputStream input = new ByteArrayInputStream(bytes);
47                        ObjectInputStream objInput = new ObjectInputStream(input);
48
49                        Object request = objInput.readObject();
50
51                        objInput.close();
52                        input.close();
53
54                        return (Request) request;
55                } catch (Exception e) {
56                        throw new SerializerException("Deserialize -> " + e.getMessage(), e);
57                }
58        }
59
60        @Override
61        public Response deserializeResponse(byte[] bytes, Class<?> type) throws SerializerException {
62                try {
63                        ByteArrayInputStream input = new ByteArrayInputStream(bytes);
64                        ObjectInputStream objInput = new ObjectInputStream(input);
65
66                        Object response = objInput.readObject();
67
68                        objInput.close();
69                        input.close();
70
71                        return (Response) response;
72                } catch (Exception e) {
73                        throw new SerializerException("Deserialize -> " + e.getMessage(), e);
74                }
75        }
76
77}
Note: See TracBrowser for help on using the repository browser.