1 package org.simantics.databoard.tests;
3 import java.io.IOException;
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;
17 public class Jotakin18 {
19 public static class MyLongBindingFactory implements BindingProvider {
21 MyLongBinding myLongBinding = new MyLongBinding();
23 public Binding provideBinding(ClassBindingFactory master, BindingRequest request) throws BindingConstructionException {
24 if (MyLong.class.isAssignableFrom( request.getClazz() )) {
33 public static class MyLongBinding extends LongBinding {
35 public MyLongBinding() {
36 super(Datatypes.LONG);
40 public Object create(long value) throws BindingException {
41 MyLong x = new MyLong();
47 public Object create(Long value) throws BindingException {
48 MyLong x = new MyLong();
54 public Object create(Number value) throws BindingException {
55 MyLong x = new MyLong();
56 x.setValue(value.longValue());
61 public Object create(String value) throws BindingException {
62 MyLong x = new MyLong();
63 x.setValue(Long.valueOf(value));
68 public Long getValue(Object o) throws BindingException {
69 MyLong x = (MyLong) o;
74 public long getValue_(Object o) throws BindingException {
75 MyLong x = (MyLong) o;
80 public void setValue(Object obj, Number value) throws BindingException {
81 throw new BindingException("Resource is immutable");
85 public void setValue(Object obj, long value) throws BindingException {
86 throw new BindingException("Resource is immutable");
90 public boolean isImmutable() {
95 public boolean isInstance(Object obj) {
96 return obj instanceof MyLong;
100 public static class XXX {
109 public void setY(long y) {
114 public static class MyLong {
116 public long getValue() {
119 public void setValue(long value) {
124 public static void main(String[] args) throws SerializerConstructionException, BindingConstructionException, IOException {
126 Bindings.databoard.addBindingFactory( new MyLongBindingFactory() );
131 Binding b = Bindings.databoard.getBinding(XXX.class);
132 Serializer s = Bindings.getSerializer(b);
134 byte[] data = s.serialize(x);