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