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