1 package org.simantics.databoard.binding.factory;
\r
3 import org.simantics.databoard.binding.Binding;
\r
4 import org.simantics.databoard.binding.RecordBinding;
\r
5 import org.simantics.databoard.binding.error.BindingException;
\r
6 import org.simantics.databoard.type.RecordType;
\r
9 * Binds RecordType to Object[]
\r
11 * @author Toni Kalajainen <toni.kalajainen@vtt.fi>
\r
13 class RecordObjectArrayBinding extends RecordBinding {
\r
15 public RecordObjectArrayBinding(RecordType type, Binding[] componentBindings)
\r
17 this.componentBindings = componentBindings;
\r
18 if (type==null) throw new IllegalArgumentException("null arg");
\r
23 public Object create(Object... value) {
\r
28 public Object createPartial() {
\r
29 return new Object[getComponentCount()];
\r
33 public Object getComponent(Object obj, int index) {
\r
34 return ((Object[])obj)[index];
\r
38 public void setComponents(Object obj, Object... value) throws BindingException {
\r
39 System.arraycopy(value, 0, obj, 0, value.length);
\r
43 public void setComponent(Object obj, int index, Object value)
\r
44 throws BindingException {
\r
45 Object[] array = (Object[]) obj;
\r
46 array[index] = value;
\r
50 public boolean isInstance(Object obj) {
\r
51 return (obj instanceof Object[]) && (((Object[])obj).length == componentBindings.length);
\r