1 /*******************************************************************************
2 * Copyright (c) 2010 Association for Decentralized Information Management in
4 * All rights reserved. This program and the accompanying materials
5 * are made available under the terms of the Eclipse Public License v1.0
6 * which accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
10 * VTT Technical Research Centre of Finland - initial API and implementation
11 *******************************************************************************/
12 package org.simantics.databoard.tests;
14 import java.util.Arrays;
16 import org.simantics.databoard.Bindings;
17 import org.simantics.databoard.Datatypes;
18 import org.simantics.databoard.annotations.Length;
19 import org.simantics.databoard.annotations.Optional;
20 import org.simantics.databoard.annotations.Range;
21 import org.simantics.databoard.annotations.Unit;
22 import org.simantics.databoard.binding.Binding;
23 import org.simantics.databoard.parser.repository.DataValueRepository;
24 import org.simantics.databoard.serialization.Serializer;
25 import org.simantics.databoard.type.Datatype;
27 public class TestAsciiSerialization {
29 public static class RGB {
32 public RGB(String colorName, int r, int g, int b)
34 this.name = colorName;
48 public String toString() {
49 return name+"={r="+r+", g="+g+", b="+b+"}";
53 public static class Image {
54 @Length({"320", "240"})
55 public RGB[][] pixels;
59 public class TestClass {
68 @Length("5") @Range("[0..100]") int[] a;
78 // public static void main(String[] args) throws Exception {
79 // System.out.println(DataTypes.getDataType(TestArray.class));
84 public static class VectorSeries {
85 public VectorSeries() {}
91 public static class Vector { int x, y, z; }
93 public static void main(String[] args) throws Exception {
95 DataValueRepository vr = new DataValueRepository();
96 Binding datatypeBinding = Bindings.getBindingUnchecked( Datatype.class );
98 Datatype vectorType = Datatypes.getDatatypeUnchecked(Vector.class);
99 String string = datatypeBinding.printValueDefinition(vectorType, true);
100 Datatype vectorType2 = (Datatype) datatypeBinding.parseValueDefinition(string);
101 if (!vectorType.equals(vectorType2)) System.err.println("datatype mismatch");
103 VectorSeries x = new VectorSeries();
106 // x.v3 = new Vector();
107 Bindings.getBinding(VectorSeries.class).printValue(x, System.out, vr, true);
108 System.out.println("\n");
111 Datatype dataType = Datatypes.getDatatype(TestClass.class);
112 Datatype testClassDataType = Datatypes.getDatatype(TestClass.class);
114 Binding dataTypeBinding = Bindings.getBinding(Datatype.class);
115 Serializer dataTypeSerializer = dataTypeBinding.serializer();
119 // dada = dataTypeSerializer.serialize(testClassDataType);
120 // System.out.println(Arrays.toString(dada));
122 System.out.println("\n");
125 System.out.println(Datatypes.<Datatype>getDatatype(TestClass.class));
127 dataTypeBinding.printValue(Datatypes.getDatatype(int[].class), System.out, vr, false);
128 System.out.println("\n");
130 dataTypeBinding.printValue(Datatypes.getDatatype(TestClass.class), System.out, vr, false);
131 System.out.println("\n");
133 dataTypeBinding.printValue(Datatypes.getDatatype(int.class), System.out, vr, false);
134 System.out.println("\n");
137 Bindings.getBinding(String.class).printValue("Abu\nDabi\"\\\\\"", System.out, vr, false);
138 System.out.println("\n");
140 Bindings.getBinding(int[].class).printValue(new int[] {1,2,3,4,5}, System.out, vr, false);
141 System.out.println("\n");
143 // new BinaryEncoder( new byte[100] ).write(DataTypes.getBinding(int[].class), new int[] {1,2,3,4,5});
145 dataTypeBinding.printValue(Datatypes.getDatatype(VectorSeries.class), System.out, vr, false);
146 System.out.println("\n");
148 int[] array = (int[]) Bindings.getBinding(int[].class).parseValueDefinition("[1, 2, 3, 4, 5]");
149 System.out.println(Arrays.toString(array));
150 System.out.println("\n");
152 Integer i = (Integer) Bindings.getBinding(Integer.class).parseValueDefinition("5");
153 System.out.println(i);
154 System.out.println("\n");
156 Datatype dt = (Datatype) Bindings.getBinding(Datatype.class).parseValueDefinition("RecordType(False \"Vector Series\" [OptionalType(IntegerType(Nothing Nothing)) \"X\", StringType(Nothing Nothing Nothing) \"Y\", ArrayType(IntegerType(Nothing Nothing) 5 5) \"a\"])");
158 dataTypeBinding.printValue(dt, System.out, vr, false);
159 System.out.println("\n");
161 dataTypeBinding.printValue(Datatypes.getDatatype(Image.class), System.out, vr, false);
162 System.out.println("\n");
164 String str = (String) Bindings.getBinding(String.class).parseValueDefinition("\"Abu\nDabi\\\"\\\\\"\"");
165 System.out.println(str);
166 System.out.println("\n");