-/*******************************************************************************\r
- * Copyright (c) 2007, 2011 Association for Decentralized Information Management in\r
- * Industry THTH ry.\r
- * All rights reserved. This program and the accompanying materials\r
- * are made available under the terms of the Eclipse Public License v1.0\r
- * which accompanies this distribution, and is available at\r
- * http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- * Contributors:\r
- * VTT Technical Research Centre of Finland - initial API and implementation\r
- *******************************************************************************/\r
-package org.simantics.history.test;\r
-\r
-import java.util.Arrays;\r
-import java.util.TreeSet;\r
-\r
-import org.simantics.databoard.Bindings;\r
-import org.simantics.databoard.binding.ArrayBinding;\r
-import org.simantics.databoard.binding.Binding;\r
-import org.simantics.databoard.binding.error.BindingConstructionException;\r
-import org.simantics.databoard.binding.reflection.BindingProvider;\r
-import org.simantics.databoard.binding.reflection.BindingRequest;\r
-import org.simantics.databoard.serialization.Serializer;\r
-import org.simantics.databoard.type.ArrayType;\r
-import org.simantics.history.util.Median;\r
-import org.simantics.history.util.MedianBinding;\r
-\r
-public class TestMedian {\r
-\r
- public static void main(String[] args) throws Exception {\r
- \r
- TreeSet<Integer> numbers = new TreeSet<Integer>();\r
- Median<Integer> fastMedian = new Median<Integer>( Bindings.INTEGER );\r
-\r
- for (int i = 1; i < 10; i += 2) {\r
- numbers.add(i);\r
- fastMedian.add(i);\r
- System.out.println(numbers + " median: " + fastMedian.getMedian());\r
- }\r
-\r
- for (int i = 10; i >= 2; i -= 2) {\r
- numbers.add(i);\r
- fastMedian.add(i);\r
- System.out.println(numbers + " median: " + fastMedian.getMedian());\r
- }\r
- \r
- BindingProvider medianBindingFactory = new BindingProvider() {\r
- public Binding provideBinding(org.simantics.databoard.binding.reflection.ClassBindingFactory master, BindingRequest request) throws BindingConstructionException {\r
- if (Median.class.isAssignableFrom( request.getClazz() )) { \r
- return new MedianBinding(new ArrayType(null), null);\r
- }\r
- return null;\r
- }\r
- }; \r
- \r
- Bindings.classBindingFactory.addFactory( medianBindingFactory );\r
-\r
- ArrayBinding b = (ArrayBinding) Bindings.getBindingUnchecked(Median.class, Integer.class);\r
- Median<Integer> qu = (Median<Integer>) b.createDefault();\r
- qu.add( 5 );\r
- System.out.println( b.get(qu, 0) ) ;\r
- \r
- System.out.println( b.toString( fastMedian ) );\r
- fastMedian.setSize( 3 );\r
- System.out.println( b.toString( fastMedian ) );\r
- \r
- \r
- Serializer s = Bindings.getSerializerUnchecked( b );\r
- byte[] data = s.serialize( fastMedian );\r
- System.out.println(Arrays.toString(data));\r
- Median<Integer> q2 = (Median<Integer>) s.deserialize( data );\r
- System.out.println( b.toString(q2) );\r
- \r
- System.out.println();\r
- }\r
-}\r
+/*******************************************************************************
+ * Copyright (c) 2007, 2011 Association for Decentralized Information Management in
+ * Industry THTH ry.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * VTT Technical Research Centre of Finland - initial API and implementation
+ *******************************************************************************/
+package org.simantics.history.test;
+
+import java.util.Arrays;
+import java.util.TreeSet;
+
+import org.simantics.databoard.Bindings;
+import org.simantics.databoard.binding.ArrayBinding;
+import org.simantics.databoard.binding.Binding;
+import org.simantics.databoard.binding.error.BindingConstructionException;
+import org.simantics.databoard.binding.reflection.BindingProvider;
+import org.simantics.databoard.binding.reflection.BindingRequest;
+import org.simantics.databoard.serialization.Serializer;
+import org.simantics.databoard.type.ArrayType;
+import org.simantics.history.util.Median;
+import org.simantics.history.util.MedianBinding;
+
+public class TestMedian {
+
+ public static void main(String[] args) throws Exception {
+
+ TreeSet<Integer> numbers = new TreeSet<Integer>();
+ Median<Integer> fastMedian = new Median<Integer>( Bindings.INTEGER );
+
+ for (int i = 1; i < 10; i += 2) {
+ numbers.add(i);
+ fastMedian.add(i);
+ System.out.println(numbers + " median: " + fastMedian.getMedian());
+ }
+
+ for (int i = 10; i >= 2; i -= 2) {
+ numbers.add(i);
+ fastMedian.add(i);
+ System.out.println(numbers + " median: " + fastMedian.getMedian());
+ }
+
+ BindingProvider medianBindingFactory = new BindingProvider() {
+ public Binding provideBinding(org.simantics.databoard.binding.reflection.ClassBindingFactory master, BindingRequest request) throws BindingConstructionException {
+ if (Median.class.isAssignableFrom( request.getClazz() )) {
+ return new MedianBinding(new ArrayType(null), null);
+ }
+ return null;
+ }
+ };
+
+ Bindings.classBindingFactory.addFactory( medianBindingFactory );
+
+ ArrayBinding b = (ArrayBinding) Bindings.getBindingUnchecked(Median.class, Integer.class);
+ Median<Integer> qu = (Median<Integer>) b.createDefault();
+ qu.add( 5 );
+ System.out.println( b.get(qu, 0) ) ;
+
+ System.out.println( b.toString( fastMedian ) );
+ fastMedian.setSize( 3 );
+ System.out.println( b.toString( fastMedian ) );
+
+
+ Serializer s = Bindings.getSerializerUnchecked( b );
+ byte[] data = s.serialize( fastMedian );
+ System.out.println(Arrays.toString(data));
+ Median<Integer> q2 = (Median<Integer>) s.deserialize( data );
+ System.out.println( b.toString(q2) );
+
+ System.out.println();
+ }
+}