X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.databoard%2Fsrc%2Forg%2Fsimantics%2Fdataboard%2Fbinding%2Freflection%2FGenericArrayBinding.java;h=a5e74ab3c14ec3e0e1487c279ab7d7f59a0d0d6a;hb=95bce3521a3c97f463c3d533a36a606c7ae6f0aa;hp=627743d53a354bb670b67abe45529761cac803de;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.databoard/src/org/simantics/databoard/binding/reflection/GenericArrayBinding.java b/bundles/org.simantics.databoard/src/org/simantics/databoard/binding/reflection/GenericArrayBinding.java index 627743d53..a5e74ab3c 100644 --- a/bundles/org.simantics.databoard/src/org/simantics/databoard/binding/reflection/GenericArrayBinding.java +++ b/bundles/org.simantics.databoard/src/org/simantics/databoard/binding/reflection/GenericArrayBinding.java @@ -1,28 +1,28 @@ -/******************************************************************************* - * 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 - *******************************************************************************/ +/******************************************************************************* + * 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.reflection; -import java.lang.reflect.Array; -import java.util.Iterator; - -import org.simantics.databoard.Bindings; -import org.simantics.databoard.adapter.AdaptException; -import org.simantics.databoard.adapter.Adapter; -import org.simantics.databoard.adapter.AdapterConstructionException; -import org.simantics.databoard.binding.ArrayBinding; -import org.simantics.databoard.binding.Binding; -import org.simantics.databoard.binding.error.BindingException; -import org.simantics.databoard.binding.error.UnsupportedOperationException; -import org.simantics.databoard.type.ArrayType; +import java.lang.reflect.Array; +import java.util.Iterator; + +import org.simantics.databoard.Bindings; +import org.simantics.databoard.adapter.AdaptException; +import org.simantics.databoard.adapter.Adapter; +import org.simantics.databoard.adapter.AdapterConstructionException; +import org.simantics.databoard.binding.ArrayBinding; +import org.simantics.databoard.binding.Binding; +import org.simantics.databoard.binding.error.BindingException; +import org.simantics.databoard.binding.error.UnsupportedOperationException; +import org.simantics.databoard.type.ArrayType; /** * ReflectionArrayBinding binds T[] @@ -60,95 +60,95 @@ public class GenericArrayBinding extends ArrayBinding { Object result = Array.newInstance(componentClass, length); System.arraycopy(array, 0, result, 0, length); return result; - } - - @Override - public void readFrom(Binding srcBinding, Object src, Object dst) - throws BindingException { - try { - ArrayBinding sb = (ArrayBinding) srcBinding; - Binding scb = sb.getComponentBinding(); - Binding dcb = getComponentBinding(); - Adapter cloner = dcb.isImmutable() ? Bindings.adapterFactory.getAdapter(scb, dcb, false, true) : null; - int length = Array.getLength(dst); - if (length != sb.size(src)) throw new BindingException(clazz.getName()+" is length immutable"); - - for (int i=0; iArray.getLength(array)) + throws BindingException { + if (index<0 || index>Array.getLength(array)) throw new BindingException("Index out of bounds"); Array.set(array, index, value); } @Override public int size(Object array) throws BindingException { - if (!isInstance(array)) { - if(array == null) - throw new BindingException("Tried to calculate the size of a null array."); - throw new BindingException("Unexpected class "+array.getClass().getSimpleName()+", "+clazz.getSimpleName()+" expected"); + if (!isInstance(array)) { + if(array == null) + throw new BindingException("Tried to calculate the size of a null array."); + throw new BindingException("Unexpected class "+array.getClass().getSimpleName()+", "+clazz.getSimpleName()+" expected"); } return Array.getLength(array); } @@ -200,27 +200,27 @@ public class GenericArrayBinding extends ArrayBinding { public void remove(Object array, int index, int count) throws BindingException, IndexOutOfBoundsException { throw new UnsupportedOperationException(); - } - - @Override - public void setSize(Object array, int newSize) throws BindingException { - int oldSize = Array.getLength(array); - if (oldSize==newSize) return; - throw new BindingException(clazz.getName()+" is length immutable"); - } - - @Override - public boolean isResizable() { - return false; - } - - @Override - protected boolean baseEquals(Object obj) { - return super.baseEquals(obj) && ((GenericArrayBinding)obj).clazz.equals(clazz); - } - - @Override - public int baseHashCode() { - return super.baseHashCode() + 13 * clazz.hashCode(); + } + + @Override + public void setSize(Object array, int newSize) throws BindingException { + int oldSize = Array.getLength(array); + if (oldSize==newSize) return; + throw new BindingException(clazz.getName()+" is length immutable"); + } + + @Override + public boolean isResizable() { + return false; + } + + @Override + protected boolean baseEquals(Object obj) { + return super.baseEquals(obj) && ((GenericArrayBinding)obj).clazz.equals(clazz); + } + + @Override + public int baseHashCode() { + return super.baseHashCode() + 13 * clazz.hashCode(); } }