--- /dev/null
+package org.simantics.databoard.tests;\r
+\r
+import java.awt.geom.Rectangle2D;\r
+import java.util.ArrayList;\r
+import java.util.HashMap;\r
+import java.util.LinkedList;\r
+import java.util.List;\r
+import java.util.Map;\r
+import java.util.TreeMap;\r
+\r
+import org.simantics.databoard.Bindings;\r
+import org.simantics.databoard.annotations.Arguments;\r
+import org.simantics.databoard.annotations.Referable;\r
+import org.simantics.databoard.annotations.Union;\r
+import org.simantics.databoard.binding.Binding;\r
+import org.simantics.databoard.binding.reflection.BindingRequest;\r
+import org.simantics.databoard.binding.reflection.ClassBindingFactory;\r
+import org.simantics.databoard.type.Datatype;\r
+\r
+public class Jotakin9 {\r
+\r
+ public @Referable static class Foo {\r
+ public List<String> list;\r
+ public String[] array;\r
+ public LinkedList<String> linkedList; \r
+ public HashMap<Integer, String> hashMap;\r
+ public TreeMap<Integer, String> treeMap;\r
+ \r
+ public Foo() { \r
+ }\r
+ \r
+ public Foo(String[] list, int[] keys, String values[]) {\r
+ this.list = new ArrayList<String>(list.length);\r
+ this.linkedList = new LinkedList<String>();\r
+ array = list.clone();\r
+ for (int i=0; i<list.length; i++) {\r
+ this.list.add( list[i] ); \r
+ this.linkedList.add( list[i] );\r
+ }\r
+ hashMap = new HashMap<Integer, String>();\r
+ treeMap = new TreeMap<Integer, String>();\r
+ for (int i=0; i<keys.length; i++) {\r
+ hashMap.put( keys[i] , values[i] );\r
+ treeMap.put( keys[i] , values[i] );\r
+ }\r
+ }\r
+ } \r
+ \r
+ public static class Bar {\r
+ \r
+ public @Arguments(List.class) List list;\r
+ \r
+ }\r
+ \r
+ @Union({Rectangle.class, Circle.class, Triangle.class})\r
+ static class Shape {} \r
+ static class Rectangle extends Shape {}\r
+ static class Circle extends Shape {} \r
+ static class Triangle extends Shape {} \r
+ \r
+ static public class Example1 {\r
+ \r
+ public int x;\r
+\r
+ public ArrayList<Integer> y;\r
+ \r
+ public TreeMap<Integer, Double> z; \r
+ \r
+ }\r
+ \r
+ static enum abc {a,b,c}\r
+ \r
+\r
+ \r
+ public static void main(String[] args) throws Exception {\r
+ \r
+ Binding c = Bindings.getBinding(Map.class, Integer.class, String.class);\r
+ Map<Integer, String> map = (Map<Integer, String>) c.createRandom(5);\r
+ System.out.println(c.toString(map));\r
+ \r
+ Binding d = Bindings.getBinding(List.class, Integer.class);\r
+ List<Integer> list = (List<Integer>) d.createRandom(5);\r
+ System.out.println(d.toString(list));\r
+ \r
+ Binding e = Bindings.getBinding(List.class, List.class, String.class);\r
+ List<List<String>> listList = (List<List<String>>) e.createRandom(5);\r
+ System.out.println(e.toString(listList));\r
+\r
+ Binding b = Bindings.getBinding(Foo.class);\r
+ b.createDefault();\r
+ System.out.println(b.getClass().getSimpleName());\r
+ \r
+ ClassBindingFactory factory = new ClassBindingFactory();\r
+ \r
+ Datatype type = factory.construct( new BindingRequest( Example1.class ) ).type();\r
+ \r
+ System.out.println(type);\r
+ \r
+ Rectangle2D rect = new Rectangle2D.Double();\r
+ Binding binding = Bindings.getBinding( rect.getClass() );\r
+ byte[] data = Bindings.getSerializer(binding).serialize(rect);\r
+ \r
+ }\r
+ \r
+}\r