-package org.simantics.databoard.tests;\r
-\r
-import java.io.IOException;\r
-\r
-import org.simantics.databoard.Bindings;\r
-import org.simantics.databoard.Datatypes;\r
-import org.simantics.databoard.binding.Binding;\r
-import org.simantics.databoard.binding.LongBinding;\r
-import org.simantics.databoard.binding.error.BindingConstructionException;\r
-import org.simantics.databoard.binding.error.BindingException;\r
-import org.simantics.databoard.binding.reflection.BindingRequest;\r
-import org.simantics.databoard.binding.reflection.BindingProvider;\r
-import org.simantics.databoard.binding.reflection.ClassBindingFactory;\r
-import org.simantics.databoard.serialization.Serializer;\r
-import org.simantics.databoard.serialization.SerializerConstructionException;\r
-\r
-public class Jotakin18 {\r
-\r
- public static class MyLongBindingFactory implements BindingProvider {\r
- \r
- MyLongBinding myLongBinding = new MyLongBinding();\r
-\r
- public Binding provideBinding(ClassBindingFactory master, BindingRequest request) throws BindingConstructionException {\r
- if (MyLong.class.isAssignableFrom( request.getClazz() )) {\r
- return myLongBinding;\r
- }\r
- \r
- return null;\r
- } \r
-\r
- }\r
- \r
- public static class MyLongBinding extends LongBinding {\r
- \r
- public MyLongBinding() {\r
- super(Datatypes.LONG);\r
- }\r
- \r
- @Override\r
- public Object create(long value) throws BindingException {\r
- MyLong x = new MyLong();\r
- x.setValue(value);\r
- return x;\r
- }\r
-\r
- @Override\r
- public Object create(Long value) throws BindingException {\r
- MyLong x = new MyLong();\r
- x.setValue(value);\r
- return x;\r
- }\r
-\r
- @Override\r
- public Object create(Number value) throws BindingException {\r
- MyLong x = new MyLong();\r
- x.setValue(value.longValue());\r
- return x;\r
- }\r
-\r
- @Override\r
- public Object create(String value) throws BindingException {\r
- MyLong x = new MyLong();\r
- x.setValue(Long.valueOf(value));\r
- return x;\r
- }\r
-\r
- @Override\r
- public Long getValue(Object o) throws BindingException {\r
- MyLong x = (MyLong) o;\r
- return x.getValue();\r
- }\r
-\r
- @Override\r
- public long getValue_(Object o) throws BindingException {\r
- MyLong x = (MyLong) o;\r
- return x.getValue();\r
- }\r
-\r
- @Override\r
- public void setValue(Object obj, Number value) throws BindingException {\r
- throw new BindingException("Resource is immutable");\r
- }\r
-\r
- @Override\r
- public void setValue(Object obj, long value) throws BindingException {\r
- throw new BindingException("Resource is immutable");\r
- }\r
- \r
- @Override\r
- public boolean isImmutable() {\r
- return true;\r
- }\r
-\r
- @Override\r
- public boolean isInstance(Object obj) {\r
- return obj instanceof MyLong;\r
- }\r
- }\r
- \r
- public static class XXX {\r
- \r
- public MyLong x; \r
- public long z;\r
- private long y;\r
-\r
- public long getY() {\r
- return y;\r
- }\r
- public void setY(long y) {\r
- this.y = y;\r
- }\r
- }\r
-\r
- public static class MyLong { \r
- private long value;\r
- public long getValue() {\r
- return value;\r
- }\r
- public void setValue(long value) {\r
- this.value = value;\r
- } \r
- }\r
- \r
- public static void main(String[] args) throws SerializerConstructionException, BindingConstructionException, IOException {\r
- \r
- Bindings.databoard.addBindingFactory( new MyLongBindingFactory() );\r
- \r
- XXX x = new XXX();\r
- x.x = new MyLong();\r
- \r
- Binding b = Bindings.databoard.getBinding(XXX.class);\r
- Serializer s = Bindings.getSerializer(b);\r
- \r
- byte[] data = s.serialize(x);\r
- s.deserialize(data);\r
- \r
- }\r
- \r
-}\r
+package org.simantics.databoard.tests;
+
+import java.io.IOException;
+
+import org.simantics.databoard.Bindings;
+import org.simantics.databoard.Datatypes;
+import org.simantics.databoard.binding.Binding;
+import org.simantics.databoard.binding.LongBinding;
+import org.simantics.databoard.binding.error.BindingConstructionException;
+import org.simantics.databoard.binding.error.BindingException;
+import org.simantics.databoard.binding.reflection.BindingRequest;
+import org.simantics.databoard.binding.reflection.BindingProvider;
+import org.simantics.databoard.binding.reflection.ClassBindingFactory;
+import org.simantics.databoard.serialization.Serializer;
+import org.simantics.databoard.serialization.SerializerConstructionException;
+
+public class Jotakin18 {
+
+ public static class MyLongBindingFactory implements BindingProvider {
+
+ MyLongBinding myLongBinding = new MyLongBinding();
+
+ public Binding provideBinding(ClassBindingFactory master, BindingRequest request) throws BindingConstructionException {
+ if (MyLong.class.isAssignableFrom( request.getClazz() )) {
+ return myLongBinding;
+ }
+
+ return null;
+ }
+
+ }
+
+ public static class MyLongBinding extends LongBinding {
+
+ public MyLongBinding() {
+ super(Datatypes.LONG);
+ }
+
+ @Override
+ public Object create(long value) throws BindingException {
+ MyLong x = new MyLong();
+ x.setValue(value);
+ return x;
+ }
+
+ @Override
+ public Object create(Long value) throws BindingException {
+ MyLong x = new MyLong();
+ x.setValue(value);
+ return x;
+ }
+
+ @Override
+ public Object create(Number value) throws BindingException {
+ MyLong x = new MyLong();
+ x.setValue(value.longValue());
+ return x;
+ }
+
+ @Override
+ public Object create(String value) throws BindingException {
+ MyLong x = new MyLong();
+ x.setValue(Long.valueOf(value));
+ return x;
+ }
+
+ @Override
+ public Long getValue(Object o) throws BindingException {
+ MyLong x = (MyLong) o;
+ return x.getValue();
+ }
+
+ @Override
+ public long getValue_(Object o) throws BindingException {
+ MyLong x = (MyLong) o;
+ return x.getValue();
+ }
+
+ @Override
+ public void setValue(Object obj, Number value) throws BindingException {
+ throw new BindingException("Resource is immutable");
+ }
+
+ @Override
+ public void setValue(Object obj, long value) throws BindingException {
+ throw new BindingException("Resource is immutable");
+ }
+
+ @Override
+ public boolean isImmutable() {
+ return true;
+ }
+
+ @Override
+ public boolean isInstance(Object obj) {
+ return obj instanceof MyLong;
+ }
+ }
+
+ public static class XXX {
+
+ public MyLong x;
+ public long z;
+ private long y;
+
+ public long getY() {
+ return y;
+ }
+ public void setY(long y) {
+ this.y = y;
+ }
+ }
+
+ public static class MyLong {
+ private long value;
+ public long getValue() {
+ return value;
+ }
+ public void setValue(long value) {
+ this.value = value;
+ }
+ }
+
+ public static void main(String[] args) throws SerializerConstructionException, BindingConstructionException, IOException {
+
+ Bindings.databoard.addBindingFactory( new MyLongBindingFactory() );
+
+ XXX x = new XXX();
+ x.x = new MyLong();
+
+ Binding b = Bindings.databoard.getBinding(XXX.class);
+ Serializer s = Bindings.getSerializer(b);
+
+ byte[] data = s.serialize(x);
+ s.deserialize(data);
+
+ }
+
+}