-/*******************************************************************************\r
- * Copyright (c) 2010 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
+/*******************************************************************************
+ * Copyright (c) 2010 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.databoard.binding.impl;
-import java.lang.reflect.Array;\r
-import java.util.IdentityHashMap;\r
-import java.util.Iterator;\r
-import java.util.Set;\r
-\r
-import org.simantics.databoard.binding.ArrayBinding;\r
-import org.simantics.databoard.binding.Binding;\r
-import org.simantics.databoard.binding.DoubleBinding;\r
-import org.simantics.databoard.binding.error.BindingException;\r
-import org.simantics.databoard.binding.error.UnsupportedOperationException;\r
-import org.simantics.databoard.type.ArrayType;\r
-import org.simantics.databoard.type.DoubleType;\r
-import org.simantics.databoard.type.NumberType;\r
-import org.simantics.databoard.util.IdentityPair;\r
+import java.lang.reflect.Array;
+import java.util.IdentityHashMap;
+import java.util.Iterator;
+import java.util.Set;
+
+import org.simantics.databoard.binding.ArrayBinding;
+import org.simantics.databoard.binding.Binding;
+import org.simantics.databoard.binding.DoubleBinding;
+import org.simantics.databoard.binding.error.BindingException;
+import org.simantics.databoard.binding.error.UnsupportedOperationException;
+import org.simantics.databoard.type.ArrayType;
+import org.simantics.databoard.type.DoubleType;
+import org.simantics.databoard.type.NumberType;
+import org.simantics.databoard.util.IdentityPair;
/**
* Binds Double[] type to double[] Class.
*/
public final class DoubleArrayBinding extends ArrayBinding {
- public static DoubleArrayBinding createFrom(ArrayType type) {\r
- return new DoubleArrayBinding(type, new DoubleBindingDefault((DoubleType) type.componentType));\r
- }\r
- \r
- public DoubleArrayBinding(ArrayType type, Binding componentBinding) {\r
- super(type, componentBinding);\r
- }\r
- \r
+ public static DoubleArrayBinding createFrom(ArrayType type) {
+ return new DoubleArrayBinding(type, new DoubleBindingDefault((DoubleType) type.componentType));
+ }
+
+ public DoubleArrayBinding(ArrayType type, Binding componentBinding) {
+ super(type, componentBinding);
+ }
+
@Override
public Object create() {
return new double[0];
for (int i=0; i<values.length; i++)
result[i] = (Double) values[i];
return result;
- }\r
- \r
- @Override\r
- public Object createDefault()\r
- throws BindingException\r
- {\r
- NumberType nt = (NumberType) type().componentType;\r
- if (nt.getRange() == null) {\r
- return new double[ type().minLength() ];\r
- }\r
- return super.createDefault();\r
- } \r
- \r
- @Override\r
- public void readFrom(Binding srcBinding, Object src, Object dst)\r
- throws BindingException {\r
- // Src Binding\r
- ArrayBinding sb = (ArrayBinding) srcBinding;\r
- // Src Component Binding\r
- DoubleBinding scb = (DoubleBinding) sb.getComponentBinding();\r
- \r
- double[] d = (double[]) dst;\r
- if (d.length != sb.size(src)) throw new BindingException("double[] is length immutable");\r
- \r
- for (int i=0; i<d.length; i++) {\r
- d[i] = scb.getValue_( sb.get(src, i) );\r
- }\r
- } \r
-\r
- @Override\r
- public Object readFromTry(Binding srcBinding, Object src, Object dst) throws BindingException {\r
- // Src Binding\r
- ArrayBinding sb = (ArrayBinding) srcBinding;\r
- // Src Component Binding\r
- DoubleBinding scb = (DoubleBinding) sb.getComponentBinding();\r
- \r
- double[] d = (double[]) dst;\r
- int srcSize = sb.size(src);\r
- if (d.length != srcSize) d = new double[ srcSize ];\r
- \r
- for (int i=0; i<d.length; i++) {\r
- d[i] = scb.getValue_( sb.get(src, i) );\r
- }\r
- \r
- return d;\r
- } \r
-\r
+ }
+
+ @Override
+ public Object createDefault()
+ throws BindingException
+ {
+ NumberType nt = (NumberType) type().componentType;
+ if (nt.getRange() == null) {
+ return new double[ type().minLength() ];
+ }
+ return super.createDefault();
+ }
+
+ @Override
+ public void readFrom(Binding srcBinding, Object src, Object dst)
+ throws BindingException {
+ // Src Binding
+ ArrayBinding sb = (ArrayBinding) srcBinding;
+ // Src Component Binding
+ DoubleBinding scb = (DoubleBinding) sb.getComponentBinding();
+
+ double[] d = (double[]) dst;
+ if (d.length != sb.size(src)) throw new BindingException("double[] is length immutable");
+
+ for (int i=0; i<d.length; i++) {
+ d[i] = scb.getValue_( sb.get(src, i) );
+ }
+ }
+
+ @Override
+ public Object readFromTry(Binding srcBinding, Object src, Object dst) throws BindingException {
+ // Src Binding
+ ArrayBinding sb = (ArrayBinding) srcBinding;
+ // Src Component Binding
+ DoubleBinding scb = (DoubleBinding) sb.getComponentBinding();
+
+ double[] d = (double[]) dst;
+ int srcSize = sb.size(src);
+ if (d.length != srcSize) d = new double[ srcSize ];
+
+ for (int i=0; i<d.length; i++) {
+ d[i] = scb.getValue_( sb.get(src, i) );
+ }
+
+ return d;
+ }
+
/**
* Create an array object.
* Note! The argument is consumed (is used in the result).
throw new UnsupportedOperationException();
}
- @Override\r
- public void setSize(Object array, int newSize) throws BindingException {\r
- int oldSize = Array.getLength(array);\r
- if (oldSize==newSize) return;\r
- throw new BindingException("double[] is length immutable");\r
- } \r
-\r
- @Override\r
- public boolean isResizable() {\r
- return false;\r
- }\r
+ @Override
+ public void setSize(Object array, int newSize) throws BindingException {
+ int oldSize = Array.getLength(array);
+ if (oldSize==newSize) return;
+ throw new BindingException("double[] is length immutable");
+ }
+
+ @Override
+ public boolean isResizable() {
+ return false;
+ }
}