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