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