]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.databoard/src/org/simantics/databoard/serialization/impl/ByteSerializer.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.databoard / src / org / simantics / databoard / serialization / impl / ByteSerializer.java
1 package org.simantics.databoard.serialization.impl;\r
2 \r
3 import java.io.DataInput;\r
4 import java.io.DataOutput;\r
5 import java.io.IOException;\r
6 \r
7 import org.simantics.databoard.binding.ByteBinding;\r
8 import org.simantics.databoard.binding.error.BindingException;\r
9 import org.simantics.databoard.serialization.Serializer.NonRecursiveSerializer;\r
10 \r
11 public class ByteSerializer extends NonRecursiveSerializer {\r
12 \r
13         ByteBinding binding;\r
14         \r
15         public ByteSerializer(ByteBinding binding) {\r
16                 this.binding = binding;\r
17         }\r
18         \r
19         @Override\r
20         public Object deserialize(DataInput in) throws IOException {\r
21                 try {\r
22                         byte value = in.readByte();\r
23                         return binding.create( value );\r
24                 } catch (BindingException e) {\r
25                         throw new IOException( e ); \r
26                 }\r
27         }\r
28         \r
29         @Override\r
30         public void deserializeTo(DataInput in, Object obj) throws IOException {\r
31                 try {\r
32                         binding.setValue(obj, in.readByte());\r
33                 } catch (BindingException e) {\r
34                         throw new IOException( e ); \r
35                 }\r
36         }\r
37 \r
38         @Override\r
39         public void skip(DataInput in)\r
40                         throws IOException {\r
41                 in.skipBytes(1);                        \r
42         }\r
43         \r
44         @Override\r
45         public void serialize(DataOutput out, Object obj) throws IOException {\r
46                 try {\r
47                         byte value = binding.getValue_(obj);\r
48                         out.write(value);\r
49                 } catch (BindingException e) {\r
50                         throw new IOException( e ); \r
51                 }\r
52         }\r
53 \r
54         @Override\r
55         public Integer getConstantSize() {\r
56                 return 1;\r
57         }\r
58 \r
59         @Override\r
60         public int getSize(Object obj) {\r
61                 return 1;\r
62         }       \r
63         \r
64         @Override\r
65         public int getMinSize() {\r
66                 return 1;\r
67         }\r
68         \r
69         public byte getByte(DataInput in) throws IOException\r
70         {\r
71                 return in.readByte();\r
72         }\r
73         \r
74         public void putByte(DataOutput out, byte x) throws IOException\r
75         {\r
76                 out.writeByte(x);\r
77         }\r
78         \r
79         \r
80 }