X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.databoard%2Fsrc%2Forg%2Fsimantics%2Fdataboard%2Fbinding%2Ffactory%2FTroveBindingsProvider.java;h=e8047450e331f59a1ce5900a7cd8c4d62eb43591;hb=refs%2Fchanges%2F65%2F2565%2F2;hp=0f9a4dc767b46a5e0ae02a22f75ea383da09f059;hpb=591f4572f18d20a08a797a8e5c4a8dfc1b3320c1;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.databoard/src/org/simantics/databoard/binding/factory/TroveBindingsProvider.java b/bundles/org.simantics.databoard/src/org/simantics/databoard/binding/factory/TroveBindingsProvider.java index 0f9a4dc76..e8047450e 100644 --- a/bundles/org.simantics.databoard/src/org/simantics/databoard/binding/factory/TroveBindingsProvider.java +++ b/bundles/org.simantics.databoard/src/org/simantics/databoard/binding/factory/TroveBindingsProvider.java @@ -1,176 +1,174 @@ -/******************************************************************************* - * Copyright (c) 2007, 2011 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.factory; - -import gnu.trove.map.hash.THashMap; -import gnu.trove.set.hash.THashSet; - -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.simantics.databoard.Datatypes; -import org.simantics.databoard.binding.Binding; -import org.simantics.databoard.binding.error.BindingConstructionException; -import org.simantics.databoard.binding.error.BindingException; -import org.simantics.databoard.binding.impl.HashMapBinding; -import org.simantics.databoard.binding.impl.HashSetBinding; -import org.simantics.databoard.binding.reflection.BindingProvider; -import org.simantics.databoard.binding.reflection.BindingRequest; -import org.simantics.databoard.binding.reflection.ClassBindingFactory; -import org.simantics.databoard.type.MapType; - -public class TroveBindingsProvider implements BindingProvider { - - @Override - public Binding provideBinding(ClassBindingFactory factory, BindingRequest request) - throws BindingConstructionException { - - if ( request.getClazz().equals(THashSet.class) ) { - MapType type = new MapType(); - type.valueType = Datatypes.VOID; - return new THashSetBinding(type, null); - } - - if ( request.getClazz().equals(THashMap.class) ) { - MapType type = new MapType(); - return new THashMapBinding(type, null, null); - } - - return null; - } - - static class THashMapBinding extends HashMapBinding { - - public THashMapBinding(Binding keyBinding, Binding valueBinding) { - super(keyBinding, valueBinding); - } - - public THashMapBinding(MapType mapType, Binding keyBinding, - Binding valueBinding) { - super(mapType, keyBinding, valueBinding); - } - - @Override - public Object create() { - return new THashMap(); - } - - @Override - public Object create(Object[] keys, Object[] values) { - if (keys.length!=values.length) - throw new IllegalArgumentException("Equal length arrays expected"); - - int len = keys.length; - THashMap result = new THashMap(len); - - for (int i=0; i keys, List values) { - if (keys.size()!=values.size()) - throw new IllegalArgumentException("Equal length arrays expected"); - - int len = keys.size(); - THashMap result = new THashMap(len); - - for (int i=0; i initialMap) throws BindingException { - if (initialMap instanceof THashMap) - return initialMap; - - // Replace with TreeMap. Create comparator from binding. - THashMap result = new THashMap(); - putAll(result, initialMap); - return result; - } - - @Override - public boolean isInstance(Object obj) { - return obj instanceof THashMap; - } - - } - - static class THashSetBinding extends HashSetBinding { - - public THashSetBinding(Binding elementBinding) { - super(elementBinding); - // TODO Auto-generated constructor stub - } - - public THashSetBinding(MapType mapType, Binding elementBinding) { - super(mapType, elementBinding); - // TODO Auto-generated constructor stub - } - - @Override - public Object create() throws BindingException { - return new THashSet(); - } - - public Object create(Set initialSet) throws BindingException { - if (initialSet instanceof THashSet) - return initialSet; - - return new THashSet(initialSet); - } - - @SuppressWarnings({ "unchecked", "rawtypes" }) - @Override - public Object create(Map initialMap) throws BindingException { - return new THashSet(initialMap.keySet()); - } - - @Override - public Object create(Object[] keys, Object[] values) - throws BindingException { - THashSet result = new THashSet(keys.length); - for (int i=0; i keys, List values) { - THashSet result = new THashSet(keys.size()); - for (int i=0; i(); + } + + @Override + public Object create(Object[] keys, Object[] values) { + if (keys.length!=values.length) + throw new IllegalArgumentException("Equal length arrays expected"); + + int len = keys.length; + THashMap result = new THashMap(len); + + for (int i=0; i keys, List values) { + if (keys.size()!=values.size()) + throw new IllegalArgumentException("Equal length arrays expected"); + + int len = keys.size(); + THashMap result = new THashMap(len); + + for (int i=0; i initialMap) throws BindingException { + if (initialMap instanceof THashMap) + return initialMap; + + // Replace with TreeMap. Create comparator from binding. + THashMap result = new THashMap(); + putAll(result, initialMap); + return result; + } + + @Override + public boolean isInstance(Object obj) { + return obj instanceof THashMap; + } + + } + + static class THashSetBinding extends HashSetBinding { + + public THashSetBinding(Binding elementBinding) { + super(elementBinding); + // TODO Auto-generated constructor stub + } + + public THashSetBinding(MapType mapType, Binding elementBinding) { + super(mapType, elementBinding); + // TODO Auto-generated constructor stub + } + + @Override + public Object create() throws BindingException { + return new THashSet(); + } + + public Object create(Set initialSet) throws BindingException { + if (initialSet instanceof THashSet) + return initialSet; + + return new THashSet(initialSet); + } + + @SuppressWarnings({ "unchecked", "rawtypes" }) + @Override + public Object create(Map initialMap) throws BindingException { + return new THashSet(initialMap.keySet()); + } + + @Override + public Object create(Object[] keys, Object[] values) + throws BindingException { + THashSet result = new THashSet(keys.length); + for (int i=0; i keys, List values) { + THashSet result = new THashSet(keys.size()); + for (int i=0; i