X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=bundles%2Forg.simantics.databoard%2Fsrc%2Forg%2Fsimantics%2Fdataboard%2Fbinding%2Fimpl%2FObjectVariantBinding.java;h=edea4d36008d11519be8515ff491b35b2b4b56c0;hb=refs%2Fchanges%2F38%2F238%2F2;hp=fba7befe2bfe01a9033ee3da5f6442a2e88f2883;hpb=24e2b34260f219f0d1644ca7a138894980e25b14;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.databoard/src/org/simantics/databoard/binding/impl/ObjectVariantBinding.java b/bundles/org.simantics.databoard/src/org/simantics/databoard/binding/impl/ObjectVariantBinding.java index fba7befe2..edea4d360 100644 --- a/bundles/org.simantics.databoard/src/org/simantics/databoard/binding/impl/ObjectVariantBinding.java +++ b/bundles/org.simantics.databoard/src/org/simantics/databoard/binding/impl/ObjectVariantBinding.java @@ -1,77 +1,77 @@ -/******************************************************************************* - * 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.impl; -import java.util.Set; - -import org.simantics.databoard.adapter.AdaptException; -import org.simantics.databoard.adapter.AdapterFactory; -import org.simantics.databoard.binding.Binding; -import org.simantics.databoard.binding.RecordBinding; -import org.simantics.databoard.binding.UnionBinding; -import org.simantics.databoard.binding.VariantBinding; -import org.simantics.databoard.binding.error.BindingConstructionException; -import org.simantics.databoard.binding.error.BindingException; -import org.simantics.databoard.binding.factory.BindingRepository; -import org.simantics.databoard.binding.reflection.BindingRequest; -import org.simantics.databoard.binding.reflection.ClassBindingFactory; -import org.simantics.databoard.binding.reflection.VoidBinding; -import org.simantics.databoard.type.Datatype; -import org.simantics.databoard.type.RecordType; -import org.simantics.databoard.type.UnionType; +import java.util.Set; + +import org.simantics.databoard.adapter.AdaptException; +import org.simantics.databoard.adapter.AdapterFactory; +import org.simantics.databoard.binding.Binding; +import org.simantics.databoard.binding.RecordBinding; +import org.simantics.databoard.binding.UnionBinding; +import org.simantics.databoard.binding.VariantBinding; +import org.simantics.databoard.binding.error.BindingConstructionException; +import org.simantics.databoard.binding.error.BindingException; +import org.simantics.databoard.binding.factory.BindingRepository; +import org.simantics.databoard.binding.reflection.BindingRequest; +import org.simantics.databoard.binding.reflection.ClassBindingFactory; +import org.simantics.databoard.binding.reflection.VoidBinding; +import org.simantics.databoard.type.Datatype; +import org.simantics.databoard.type.RecordType; +import org.simantics.databoard.type.UnionType; /** * ObjectVariantBinding binds VariantType and Object.class. * The implementation is immutable as Object.class is not a container, it is * a value.

* - * ObjectVariantBinding understands many classes - * Collections: ArrayList, List, LinkedList, int[], .., other arrays [], Map, TreeMap, HashMap, Set, HashSet, TreeSet, - * Strings: String - * immutable primitives: Integer, Boolean, ... - * mutable primitives: MutableInteger, MutableBoolean, ... - * classes: Record-classes, Bean-Classes, Immutable-Classes - * null is bound to a void. + * ObjectVariantBinding understands many classes + * Collections: ArrayList, List, LinkedList, int[], .., other arrays [], Map, TreeMap, HashMap, Set, HashSet, TreeSet, + * Strings: String + * immutable primitives: Integer, Boolean, ... + * mutable primitives: MutableInteger, MutableBoolean, ... + * classes: Record-classes, Bean-Classes, Immutable-Classes + * null is bound to a void. * * @author Toni Kalajainen */ public class ObjectVariantBinding extends VariantBinding { - + ClassBindingFactory bindingFactory; - AdapterFactory adapterFactory; + AdapterFactory adapterFactory; - public ObjectVariantBinding(ClassBindingFactory bindingFactory, AdapterFactory adapterFactory) { - this.bindingFactory = bindingFactory; + public ObjectVariantBinding(ClassBindingFactory bindingFactory, AdapterFactory adapterFactory) { + this.bindingFactory = bindingFactory; this.adapterFactory = adapterFactory; } - - public ClassBindingFactory getBindingFactory() { - return bindingFactory; - } - - public BindingRepository getRepository() { - return bindingFactory.getRepository(); - } + + public ClassBindingFactory getBindingFactory() { + return bindingFactory; + } + + public BindingRepository getRepository() { + return bindingFactory.getRepository(); + } @Override public Object create(Binding srcBinding, Object value) throws BindingException { - if (srcBinding instanceof VoidBinding) return null; - return value; + if (srcBinding instanceof VoidBinding) return null; + return value; -/* try { - //Annotation[] annotations = new Annotation[ srcBinding.getComponentCount() ]; - BindingRequest request = new BindingRequest( value.getClass() ); - //request.componentBinding = srcBinding.getComponentCount()>0?srcBinding.getComponentBinding(0):null; - Binding dstBinding = bindingFactory.getBinding( request ); +/* try { + //Annotation[] annotations = new Annotation[ srcBinding.getComponentCount() ]; + BindingRequest request = new BindingRequest( value.getClass() ); + //request.componentBinding = srcBinding.getComponentCount()>0?srcBinding.getComponentBinding(0):null; + Binding dstBinding = bindingFactory.getBinding( request ); return adapterFactory.adapt(value, srcBinding, dstBinding); } catch (BindingConstructionException e) { throw new BindingException(e); @@ -84,15 +84,15 @@ public class ObjectVariantBinding extends VariantBinding { public Binding getContentBinding(Object variant) throws BindingException { try { if (variant==null) return VoidBinding.VOID_BINDING; - BindingRequest request = new BindingRequest(variant.getClass()); - return bindingFactory.construct(request); + BindingRequest request = new BindingRequest(variant.getClass()); + return bindingFactory.construct(request); } catch (BindingConstructionException e) { throw new BindingException(e); } } @Override - public Datatype getContentType(Object variant) throws BindingException { + public Datatype getContentType(Object variant) throws BindingException { return getContentBinding(variant).type(); } @@ -120,7 +120,7 @@ public class ObjectVariantBinding extends VariantBinding { @Override public void setContent(Object variant, Binding binding, Object value) - throws BindingException { + throws BindingException { if (variant==value) return; try { Binding binding1 = getContentBinding(variant); @@ -185,10 +185,10 @@ public class ObjectVariantBinding extends VariantBinding { public boolean isImmutable() { return true; } - - @Override - protected boolean baseEquals(Object obj) { - ObjectVariantBinding o = (ObjectVariantBinding)obj; - return super.baseEquals( obj ) && o.adapterFactory == adapterFactory && o.bindingFactory == bindingFactory; + + @Override + protected boolean baseEquals(Object obj) { + ObjectVariantBinding o = (ObjectVariantBinding)obj; + return super.baseEquals( obj ) && o.adapterFactory == adapterFactory && o.bindingFactory == bindingFactory; } }