]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.databoard/src/org/simantics/databoard/binding/impl/HashMapBinding.java
Added addFirst/After/Before + remove SCL functions for Ordered Sets
[simantics/platform.git] / bundles / org.simantics.databoard / src / org / simantics / databoard / binding / impl / HashMapBinding.java
index 76241a0c7f3eaebd2e7f51d699c5e983d43cbb3b..d8c63e34d15b8b72e03b9c216dc63877a06cd8fa 100644 (file)
@@ -1,35 +1,35 @@
-/*******************************************************************************\r
- *  Copyright (c) 2010 Association for Decentralized Information Management in\r
- *  Industry THTH ry.\r
- *  All rights reserved. This program and the accompanying materials\r
- *  are made available under the terms of the Eclipse Public License v1.0\r
- *  which accompanies this distribution, and is available at\r
- *  http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- *  Contributors:\r
- *      VTT Technical Research Centre of Finland - initial API and implementation\r
- *******************************************************************************/\r
+/*******************************************************************************
+ *  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.Arrays;\r
-import java.util.Comparator;\r
-import java.util.HashMap;\r
-import java.util.IdentityHashMap;\r
-import java.util.Iterator;\r
-import java.util.List;\r
-import java.util.Map;\r
-import java.util.Map.Entry;\r
-import java.util.Set;\r
-\r
-import org.simantics.databoard.Bindings;\r
-import org.simantics.databoard.adapter.AdaptException;\r
-import org.simantics.databoard.adapter.Adapter;\r
-import org.simantics.databoard.adapter.AdapterConstructionException;\r
-import org.simantics.databoard.binding.ArrayBinding;\r
-import org.simantics.databoard.binding.Binding;\r
-import org.simantics.databoard.binding.MapBinding;\r
-import org.simantics.databoard.binding.error.BindingException;\r
-import org.simantics.databoard.type.MapType;\r
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.IdentityHashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+
+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.MapBinding;
+import org.simantics.databoard.binding.error.BindingException;
+import org.simantics.databoard.type.MapType;
 
 /**
  * Binds Databoard's MapType to java.util.Map and instantiates java.util.HashMap.
@@ -53,11 +53,11 @@ public class HashMapBinding extends MapBinding {
                super(mapType, keyBinding, valueBinding);
        }
        
-    @Override\r
-    public Object create() {        \r
-        return new HashMap<Object, Object>();\r
-    }\r
-    \r
+    @Override
+    public Object create() {        
+        return new HashMap<Object, Object>();
+    }
+    
        @Override
        public Object create(Object[] keys, Object[] values) {
                if (keys.length!=values.length)
@@ -95,9 +95,9 @@ public class HashMapBinding extends MapBinding {
        }
        
        @Override
-       public Object create(Map<?, ?> initialMap) throws BindingException {\r
-           if (initialMap instanceof HashMap)\r
-               return initialMap;\r
+       public Object create(Map<?, ?> initialMap) throws BindingException {
+           if (initialMap instanceof HashMap)
+               return initialMap;
            
                // Replace with TreeMap. Create comparator from binding.
                HashMap<Object, Object> result = new HashMap<Object, Object>();
@@ -157,62 +157,62 @@ public class HashMapBinding extends MapBinding {
        public void getKeys(Object map, Set<Object> keys) throws BindingException {
                Map<?, ?>  m = ((Map<?, ?> )map);
                keys.addAll(m.keySet());
-       }\r
-       \r
-       @SuppressWarnings("unchecked")\r
-       @Override\r
-       public int getEntries(Object src, Object from, boolean fromInclusive, Object end, boolean endInclusive, ArrayBinding dstKeyArrayBinding, Object dstKeyArray, ArrayBinding dstValueArrayBinding, Object dstValueArray, int limit) throws BindingException {\r
-               // Assert end > from\r
-               if (keyBinding.compare(from, end)>0) return 0;\r
-               \r
-               try {\r
-                       int dkc = dstKeyArrayBinding.size(dstKeyArray);\r
-                       int dvc = dstValueArrayBinding.size(dstValueArray);\r
-                       Adapter ka = Bindings.getTypeAdapter(keyBinding, dstKeyArrayBinding.getComponentBinding());\r
-                       Adapter va = Bindings.getTypeAdapter(valueBinding, dstValueArrayBinding.getComponentBinding());\r
-                       HashMap<Object, Object> m = ((HashMap<Object, Object>)src);\r
-                       int i = 0;\r
-                       for (Entry<Object, Object> e : m.entrySet()) {\r
-                               if (limit>=0 && i>=limit) break;\r
-                               Object k = e.getKey();\r
-                               int fk = keyBinding.compare(from, k);\r
-                               int ek = keyBinding.compare(k, end);\r
-                               boolean fromMatches = fromInclusive ? fk<=0 : fk<0;\r
-                               boolean endMatches = endInclusive ? ek<=0 : ek <0;                      \r
-                               if ( fromMatches && endMatches ) {\r
-                                       Object dk = ka.adapt( e.getKey() );\r
-                                       Object dv = va.adapt( e.getValue() );\r
-                                       if (i<dkc) dstKeyArrayBinding.set(dstKeyArray, i, dk); else dstKeyArrayBinding.add(dstKeyArray, dk);\r
-                                       if (i<dvc) dstValueArrayBinding.set(dstValueArray, i, dv); else dstValueArrayBinding.add(dstValueArray, dv);\r
-                                       i++;\r
-                               }\r
-                       }\r
-                       return i;\r
-               } catch (AdapterConstructionException e) {\r
-                       throw new BindingException( e );\r
-               } catch (AdaptException e) {\r
-                       throw new BindingException( e );\r
-               }\r
-       }\r
-       \r
-       @SuppressWarnings("unchecked")\r
-       @Override\r
-       public int count(Object src, Object from, boolean fromInclusive,\r
-                       Object end, boolean endInclusive) throws BindingException {\r
-               // Assert end > from\r
-               if (keyBinding.compare(from, end)>0) return 0;\r
-               \r
-               int result = 0;\r
-               HashMap<Object, Object> m = ((HashMap<Object, Object>)src);\r
-               for (Object k : m.keySet()) {\r
-                       int fk = keyBinding.compare(from, k);\r
-                       int ek = keyBinding.compare(k, end);\r
-                       boolean fromMatches = fromInclusive ? fk<=0 : fk<0;\r
-                       boolean endMatches = endInclusive ? ek<=0 : ek <0;                      \r
-                       if ( fromMatches && endMatches ) result++;\r
-               }               \r
-               return result;\r
-       }\r
+       }
+       
+       @SuppressWarnings("unchecked")
+       @Override
+       public int getEntries(Object src, Object from, boolean fromInclusive, Object end, boolean endInclusive, ArrayBinding dstKeyArrayBinding, Object dstKeyArray, ArrayBinding dstValueArrayBinding, Object dstValueArray, int limit) throws BindingException {
+               // Assert end > from
+               if (keyBinding.compare(from, end)>0) return 0;
+               
+               try {
+                       int dkc = dstKeyArrayBinding.size(dstKeyArray);
+                       int dvc = dstValueArrayBinding.size(dstValueArray);
+                       Adapter ka = Bindings.getTypeAdapter(keyBinding, dstKeyArrayBinding.getComponentBinding());
+                       Adapter va = Bindings.getTypeAdapter(valueBinding, dstValueArrayBinding.getComponentBinding());
+                       HashMap<Object, Object> m = ((HashMap<Object, Object>)src);
+                       int i = 0;
+                       for (Entry<Object, Object> e : m.entrySet()) {
+                               if (limit>=0 && i>=limit) break;
+                               Object k = e.getKey();
+                               int fk = keyBinding.compare(from, k);
+                               int ek = keyBinding.compare(k, end);
+                               boolean fromMatches = fromInclusive ? fk<=0 : fk<0;
+                               boolean endMatches = endInclusive ? ek<=0 : ek <0;                      
+                               if ( fromMatches && endMatches ) {
+                                       Object dk = ka.adapt( e.getKey() );
+                                       Object dv = va.adapt( e.getValue() );
+                                       if (i<dkc) dstKeyArrayBinding.set(dstKeyArray, i, dk); else dstKeyArrayBinding.add(dstKeyArray, dk);
+                                       if (i<dvc) dstValueArrayBinding.set(dstValueArray, i, dv); else dstValueArrayBinding.add(dstValueArray, dv);
+                                       i++;
+                               }
+                       }
+                       return i;
+               } catch (AdapterConstructionException e) {
+                       throw new BindingException( e );
+               } catch (AdaptException e) {
+                       throw new BindingException( e );
+               }
+       }
+       
+       @SuppressWarnings("unchecked")
+       @Override
+       public int count(Object src, Object from, boolean fromInclusive,
+                       Object end, boolean endInclusive) throws BindingException {
+               // Assert end > from
+               if (keyBinding.compare(from, end)>0) return 0;
+               
+               int result = 0;
+               HashMap<Object, Object> m = ((HashMap<Object, Object>)src);
+               for (Object k : m.keySet()) {
+                       int fk = keyBinding.compare(from, k);
+                       int ek = keyBinding.compare(k, end);
+                       boolean fromMatches = fromInclusive ? fk<=0 : fk<0;
+                       boolean endMatches = endInclusive ? ek<=0 : ek <0;                      
+                       if ( fromMatches && endMatches ) result++;
+               }               
+               return result;
+       }
                
        @Override
        public Object[] getValues(Object map) {
@@ -260,7 +260,7 @@ public class HashMapBinding extends MapBinding {
                }
        }
        
-       @SuppressWarnings("unchecked")\r
+       @SuppressWarnings("unchecked")
     @Override
        public <K, V> void getAll(Object mapFrom, Map<K, V> to) {
                Map<K, V> m = ((Map<K, V>)mapFrom);
@@ -291,7 +291,7 @@ public class HashMapBinding extends MapBinding {
        @SuppressWarnings("unchecked")
        @Override
        public Object remove(Object map, Object key) {
-               Map<Object, Object> m = ((Map<Object, Object>)map);\r
+               Map<Object, Object> m = ((Map<Object, Object>)map);
                Binding kb = getKeyBinding();
                for (Entry<Object, Object> e : (Set<Entry<Object, Object>>) m.entrySet())
                {
@@ -311,7 +311,7 @@ public class HashMapBinding extends MapBinding {
                return obj instanceof HashMap;
        }
 
-       @SuppressWarnings("unchecked")\r
+       @SuppressWarnings("unchecked")
     @Override
     public int deepHashValue(Object map, IdentityHashMap<Object, Object> hashedObjects) throws BindingException {
                int result = 0;
@@ -325,7 +325,7 @@ public class HashMapBinding extends MapBinding {
                return result;
        }
 
-       @SuppressWarnings("unchecked")\r
+       @SuppressWarnings("unchecked")
     @Override
        public Object getCeilingKey(Object map, Object key) {
                Map<Object, Object> m = ((Map<Object, Object>)map);
@@ -343,7 +343,7 @@ public class HashMapBinding extends MapBinding {
                return pivot;
        }
 
-       @SuppressWarnings("unchecked")\r
+       @SuppressWarnings("unchecked")
     @Override
        public Object getFirstKey(Object map) {
                Map<Object, Object> m = (Map<Object, Object>) map;
@@ -361,7 +361,7 @@ public class HashMapBinding extends MapBinding {
                return result;  
        }
 
-       @SuppressWarnings("unchecked")\r
+       @SuppressWarnings("unchecked")
     @Override
        public Object getFloorKey(Object map, Object key) {
                Map<Object, Object> m = ((Map<Object, Object>)map);
@@ -382,7 +382,7 @@ public class HashMapBinding extends MapBinding {
                return pivot;
        }
 
-       @SuppressWarnings("unchecked")\r
+       @SuppressWarnings("unchecked")
     @Override
        public Object getHigherKey(Object map, Object key) {
                Map<Object, Object> m = ((Map<Object, Object>)map);
@@ -400,7 +400,7 @@ public class HashMapBinding extends MapBinding {
                return pivot;
        }
 
-       @SuppressWarnings("unchecked")\r
+       @SuppressWarnings("unchecked")
     @Override
        public Object getLastKey(Object map) {
                Map<Object, Object> m = (Map<Object, Object>) map;
@@ -418,7 +418,7 @@ public class HashMapBinding extends MapBinding {
                return result;  
        }
 
-       @SuppressWarnings("unchecked")\r
+       @SuppressWarnings("unchecked")
     @Override
        public Object getLowerKey(Object map, Object key) {
                Map<Object, Object> m = ((Map<Object, Object>)map);