]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.databoard/src/org/simantics/databoard/serialization/impl/LongSerializer.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.databoard / src / org / simantics / databoard / serialization / impl / LongSerializer.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.LongBinding;\r
8 import org.simantics.databoard.binding.error.BindingException;\r
9 import org.simantics.databoard.serialization.Serializer.NonRecursiveSerializer;\r
10 \r
11 public class LongSerializer extends NonRecursiveSerializer {\r
12 \r
13         LongBinding binding;\r
14         \r
15         public LongSerializer(LongBinding binding) {this.binding = binding;}\r
16         \r
17         @Override\r
18         public Object deserialize(DataInput in) throws IOException{\r
19                 try {\r
20                         long value = in.readLong(); \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.readLong());\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(8);                        \r
40         }\r
41         \r
42         @Override\r
43         public void serialize(DataOutput out, Object obj) throws IOException {\r
44                 try {\r
45                         long value = binding.getValue_(obj);\r
46                         out.writeLong( 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 8;\r
55         }\r
56 \r
57         @Override\r
58         public int getSize(Object obj) {\r
59                 return 8;\r
60         }\r
61         \r
62         @Override\r
63         public int getMinSize() {\r
64                 return 8;\r
65         }\r
66         \r
67         public long getLong(DataInput in) throws IOException\r
68         {\r
69                 return in.readLong();\r
70         }\r
71         \r
72         public void putLong(DataOutput out, long x) throws IOException\r
73         {\r
74                 out.writeLong(x);\r
75         }\r
76         \r
77 }       \r