1 package org.simantics.databoard.tests;
3 import java.awt.geom.Rectangle2D;
4 import java.util.ArrayList;
5 import java.util.HashMap;
6 import java.util.LinkedList;
9 import java.util.TreeMap;
11 import org.simantics.databoard.Bindings;
12 import org.simantics.databoard.annotations.Arguments;
13 import org.simantics.databoard.annotations.Referable;
14 import org.simantics.databoard.annotations.Union;
15 import org.simantics.databoard.binding.Binding;
16 import org.simantics.databoard.binding.reflection.BindingRequest;
17 import org.simantics.databoard.binding.reflection.ClassBindingFactory;
18 import org.simantics.databoard.type.Datatype;
20 public class Jotakin9 {
22 public @Referable static class Foo {
23 public List<String> list;
24 public String[] array;
25 public LinkedList<String> linkedList;
26 public HashMap<Integer, String> hashMap;
27 public TreeMap<Integer, String> treeMap;
32 public Foo(String[] list, int[] keys, String values[]) {
33 this.list = new ArrayList<String>(list.length);
34 this.linkedList = new LinkedList<String>();
36 for (int i=0; i<list.length; i++) {
37 this.list.add( list[i] );
38 this.linkedList.add( list[i] );
40 hashMap = new HashMap<Integer, String>();
41 treeMap = new TreeMap<Integer, String>();
42 for (int i=0; i<keys.length; i++) {
43 hashMap.put( keys[i] , values[i] );
44 treeMap.put( keys[i] , values[i] );
49 public static class Bar {
51 public @Arguments(List.class) List list;
55 @Union({Rectangle.class, Circle.class, Triangle.class})
57 static class Rectangle extends Shape {}
58 static class Circle extends Shape {}
59 static class Triangle extends Shape {}
61 static public class Example1 {
65 public ArrayList<Integer> y;
67 public TreeMap<Integer, Double> z;
71 static enum abc {a,b,c}
75 public static void main(String[] args) throws Exception {
77 Binding c = Bindings.getBinding(Map.class, Integer.class, String.class);
78 Map<Integer, String> map = (Map<Integer, String>) c.createRandom(5);
79 System.out.println(c.toString(map));
81 Binding d = Bindings.getBinding(List.class, Integer.class);
82 List<Integer> list = (List<Integer>) d.createRandom(5);
83 System.out.println(d.toString(list));
85 Binding e = Bindings.getBinding(List.class, List.class, String.class);
86 List<List<String>> listList = (List<List<String>>) e.createRandom(5);
87 System.out.println(e.toString(listList));
89 Binding b = Bindings.getBinding(Foo.class);
91 System.out.println(b.getClass().getSimpleName());
93 ClassBindingFactory factory = new ClassBindingFactory();
95 Datatype type = factory.construct( new BindingRequest( Example1.class ) ).type();
97 System.out.println(type);
99 Rectangle2D rect = new Rectangle2D.Double();
100 Binding binding = Bindings.getBinding( rect.getClass() );
101 byte[] data = Bindings.getSerializer(binding).serialize(rect);