]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.databoard/scratch/org/simantics/databoard/tests/Jotakin18.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.databoard / scratch / org / simantics / databoard / tests / Jotakin18.java
1 package org.simantics.databoard.tests;
2
3 import java.io.IOException;
4
5 import org.simantics.databoard.Bindings;
6 import org.simantics.databoard.Datatypes;
7 import org.simantics.databoard.binding.Binding;
8 import org.simantics.databoard.binding.LongBinding;
9 import org.simantics.databoard.binding.error.BindingConstructionException;
10 import org.simantics.databoard.binding.error.BindingException;
11 import org.simantics.databoard.binding.reflection.BindingRequest;
12 import org.simantics.databoard.binding.reflection.BindingProvider;
13 import org.simantics.databoard.binding.reflection.ClassBindingFactory;
14 import org.simantics.databoard.serialization.Serializer;
15 import org.simantics.databoard.serialization.SerializerConstructionException;
16
17 public class Jotakin18 {
18
19         public static class MyLongBindingFactory implements BindingProvider {
20                 
21                 MyLongBinding myLongBinding = new MyLongBinding();
22
23                 public Binding provideBinding(ClassBindingFactory master, BindingRequest request) throws BindingConstructionException {
24                         if (MyLong.class.isAssignableFrom( request.getClazz() )) {
25                                 return myLongBinding;
26                         }
27                         
28                         return null;
29                 }       
30
31         }
32         
33         public static class MyLongBinding extends LongBinding {
34                 
35             public MyLongBinding() {
36                 super(Datatypes.LONG);
37             }
38             
39             @Override
40             public Object create(long value) throws BindingException {
41                 MyLong x = new MyLong();
42                 x.setValue(value);
43                 return x;
44             }
45
46             @Override
47             public Object create(Long value) throws BindingException {
48                 MyLong x = new MyLong();
49                 x.setValue(value);
50                 return x;
51             }
52
53             @Override
54             public Object create(Number value) throws BindingException {
55                 MyLong x = new MyLong();
56                 x.setValue(value.longValue());
57                 return x;
58             }
59
60             @Override
61             public Object create(String value) throws BindingException {
62                 MyLong x = new MyLong();
63                 x.setValue(Long.valueOf(value));
64                 return x;
65             }
66
67             @Override
68             public Long getValue(Object o) throws BindingException {
69                 MyLong x = (MyLong) o;
70                 return x.getValue();
71             }
72
73             @Override
74             public long getValue_(Object o) throws BindingException {
75                 MyLong x = (MyLong) o;
76                 return x.getValue();
77             }
78
79             @Override
80             public void setValue(Object obj, Number value) throws BindingException {
81                 throw new BindingException("Resource is immutable");
82             }
83
84             @Override
85             public void setValue(Object obj, long value) throws BindingException {
86                 throw new BindingException("Resource is immutable");
87             }
88             
89             @Override
90             public boolean isImmutable() {
91                 return true;
92             }
93
94             @Override
95             public boolean isInstance(Object obj) {
96                 return obj instanceof MyLong;
97             }
98         }
99         
100         public static class XXX {
101                 
102                 public MyLong x; 
103                 public long z;
104                 private long y;
105
106                 public long getY() {
107                         return y;
108                 }
109                 public void setY(long y) {
110                         this.y = y;
111                 }
112         }
113
114         public static class MyLong {            
115                 private long value;
116                 public long getValue() {
117                         return value;
118                 }
119                 public void setValue(long value) {
120                         this.value = value;
121                 }               
122         }
123         
124         public static void main(String[] args) throws SerializerConstructionException, BindingConstructionException, IOException {
125                 
126                 Bindings.databoard.addBindingFactory( new MyLongBindingFactory() );
127                 
128                 XXX x = new XXX();
129                 x.x = new MyLong();
130                 
131                 Binding b = Bindings.databoard.getBinding(XXX.class);
132                 Serializer s = Bindings.getSerializer(b);
133                 
134                 byte[] data = s.serialize(x);
135                 s.deserialize(data);
136                 
137         }
138         
139 }