]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.databoard/testcases/org/simantics/databoard/tests/TestAsciiSerialization.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.databoard / testcases / org / simantics / databoard / tests / TestAsciiSerialization.java
1 /*******************************************************************************
2  *  Copyright (c) 2010 Association for Decentralized Information Management in
3  *  Industry THTH ry.
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
8  *
9  *  Contributors:
10  *      VTT Technical Research Centre of Finland - initial API and implementation
11  *******************************************************************************/
12 package org.simantics.databoard.tests;
13
14 import java.util.Arrays;
15
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;
26
27 public class TestAsciiSerialization {
28
29         public static class RGB {
30                 
31                 public RGB() {}
32                 public RGB(String colorName, int r, int g, int b)
33                 {
34                         this.name = colorName;
35                         this.r = r;
36                         this.g = g;
37                         this.b = b;
38                 }
39                 
40                 @Unit("red")
41                 public int r;
42                 public int g;
43                 public int b;
44                 public String name;
45                 public int[] data;
46                 
47                 @Override
48                 public String toString() {
49                         return name+"={r="+r+", g="+g+", b="+b+"}";
50                 }
51                 
52         }       
53         public static class Image {
54                 @Length({"320", "240"})
55                 public RGB[][] pixels;
56         }
57         
58 //      @Recursive
59         public class TestClass {
60                 public TestClass() {}
61                 
62 //              @Max("5")
63 //              @Min("0")
64                 
65                 @Optional Integer X;
66                 String Y;
67                 
68                 @Length("5") @Range("[0..100]") int[] a;
69                 
70 //              
71 //              float[][][] b;
72 //              
73 //              TestArray[] c;
74 //              
75 //              @Unit("m")
76 //              double length;
77 //              
78 //              public static void main(String[] args) throws Exception {
79 //                      System.out.println(DataTypes.getDataType(TestArray.class));
80 //                                      
81 //              }
82         }
83         
84         public static class VectorSeries {
85                 public VectorSeries() {}
86                 @Optional Vector v1;
87                 @Optional Vector v2;
88                 @Optional Vector v3;            
89         }
90
91         public static class Vector { int x, y, z; }     
92         
93         public static void main(String[] args) throws Exception {
94                 
95         DataValueRepository vr = new DataValueRepository(); 
96                 Binding datatypeBinding = Bindings.getBindingUnchecked( Datatype.class );
97                 
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");
102                 
103                 VectorSeries x = new VectorSeries();
104                 x.v1 = new Vector();
105                 x.v2 = new Vector();
106 //              x.v3 = new Vector();
107                 Bindings.getBinding(VectorSeries.class).printValue(x, System.out, vr, true);
108                 System.out.println("\n");
109
110                 
111                 Datatype dataType = Datatypes.getDatatype(TestClass.class);
112                 Datatype testClassDataType = Datatypes.getDatatype(TestClass.class);
113                 
114                 Binding dataTypeBinding = Bindings.getBinding(Datatype.class);
115                 Serializer dataTypeSerializer = dataTypeBinding.serializer();  
116                                 
117                 byte[] dada;
118                 
119 //              dada = dataTypeSerializer.serialize(testClassDataType);                                         
120 //              System.out.println(Arrays.toString(dada));
121
122                 System.out.println("\n");
123                 
124                 
125                 System.out.println(Datatypes.<Datatype>getDatatype(TestClass.class));
126                 
127                 dataTypeBinding.printValue(Datatypes.getDatatype(int[].class), System.out, vr, false);
128                 System.out.println("\n");
129                 
130                 dataTypeBinding.printValue(Datatypes.getDatatype(TestClass.class), System.out, vr, false);
131                 System.out.println("\n");
132                 
133                 dataTypeBinding.printValue(Datatypes.getDatatype(int.class), System.out, vr, false);
134                 System.out.println("\n");
135                 
136                 
137                 Bindings.getBinding(String.class).printValue("Abu\nDabi\"\\\\\"", System.out, vr, false);
138                 System.out.println("\n");
139
140                 Bindings.getBinding(int[].class).printValue(new int[] {1,2,3,4,5}, System.out, vr, false);
141                 System.out.println("\n");
142
143 //              new BinaryEncoder( new byte[100] ).write(DataTypes.getBinding(int[].class), new int[] {1,2,3,4,5});
144
145                 dataTypeBinding.printValue(Datatypes.getDatatype(VectorSeries.class), System.out, vr, false);
146                 System.out.println("\n");
147                 
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");
151                 
152                 Integer i = (Integer) Bindings.getBinding(Integer.class).parseValueDefinition("5");
153                 System.out.println(i);
154                 System.out.println("\n");
155                 
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\"])");
157                 
158                 dataTypeBinding.printValue(dt, System.out, vr, false);
159                 System.out.println("\n");
160
161                 dataTypeBinding.printValue(Datatypes.getDatatype(Image.class), System.out, vr, false);          
162                 System.out.println("\n");
163
164                 String str = (String) Bindings.getBinding(String.class).parseValueDefinition("\"Abu\nDabi\\\"\\\\\"\"");
165                 System.out.println(str);
166                 System.out.println("\n");
167
168                 
169         }
170         
171 }
172