]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.runtime/src/org/simantics/scl/runtime/list/ShareableList.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.scl.runtime / src / org / simantics / scl / runtime / list / ShareableList.java
old mode 100755 (executable)
new mode 100644 (file)
index 0abe728..0a06fc3
-package org.simantics.scl.runtime.list;\r
-\r
-import java.util.AbstractList;\r
-import java.util.Arrays;\r
-import java.util.List;\r
-\r
-public class ShareableList<T> extends AbstractList<T> {\r
-\r
-    public static final int INITIAL_CAPACITY = 4;\r
-    \r
-    T[] elements;\r
-    int size;\r
-    boolean head;\r
-    \r
-    public ShareableList(T[] elements, int size, boolean head) {\r
-        this.elements = elements;\r
-        this.size = size;\r
-        this.head = head;\r
-    }\r
-    \r
-    @SuppressWarnings("unchecked")\r
-    public ShareableList() {\r
-        this.elements = (T[])new Object[INITIAL_CAPACITY];\r
-        this.size = 0;\r
-        this.head = true;\r
-    }\r
-\r
-    @Override\r
-    public T get(int index) {\r
-        if(index < 0 || index >= size)\r
-            throw new IndexOutOfBoundsException();\r
-        return elements[index];\r
-    }\r
-\r
-    @Override\r
-    public int size() {\r
-        return size;\r
-    }\r
-\r
-    @SuppressWarnings("unchecked")\r
-    public ShareableList<T> append(T element) {\r
-        T[] newElements;\r
-        if(size < elements.length) {            \r
-            if(head) {\r
-                head = false;\r
-                newElements = elements;\r
-            }\r
-            else {\r
-                newElements = (T[])new Object[elements.length];\r
-                System.arraycopy(elements, 0, newElements, 0, size);\r
-            }\r
-        }\r
-        else {\r
-            newElements = Arrays.copyOf(elements, (elements.length*3)/2 + 1);            \r
-        }\r
-        newElements[size] = element;\r
-        return new ShareableList<T>(newElements, size+1, true);\r
-    }\r
-    \r
-    @SuppressWarnings("unchecked")\r
-    public ShareableList<T> appendAll(List<T> xs) {\r
-        int count = xs.size();\r
-        int size = this.size;\r
-        int newSize = size + count;\r
-        \r
-        T[] newElements;\r
-        if(newSize <= elements.length) {            \r
-            if(head) {\r
-                head = false;\r
-                newElements = elements;\r
-            }\r
-            else {\r
-                newElements = (T[])new Object[elements.length];\r
-                System.arraycopy(elements, 0, newElements, 0, size);\r
-            }\r
-        }\r
-        else {\r
-            newElements = Arrays.copyOf(elements, Math.max((elements.length*3)/2 + 1, newSize));            \r
-        }\r
-        for(int i=0;i<count;++i)\r
-            newElements[i+size] = xs.get(i);\r
-        return new ShareableList<T>(newElements, newSize, true);\r
-    }\r
-    \r
-    @SuppressWarnings("unchecked")\r
-    public static <T> List<T> add(List<T> list, T element) {\r
-        List<T> result;\r
-        if(list instanceof ShareableList)\r
-            result = ((ShareableList<T>)list).append(element);\r
-        else {\r
-            int size = list.size();\r
-            T[] newElements = (T[])new Object[(size*3)/2 + 1];\r
-            for(int i=0;i<size;++i)\r
-                newElements[i] = list.get(i);\r
-            newElements[size] = element;\r
-            result = new ShareableList<T>(newElements, size+1, true);\r
-        }\r
-        //System.out.println(list + " + " + element + " = " + result);\r
-        return result;\r
-    }\r
-    \r
-    @SuppressWarnings("unchecked")\r
-    public static <T> List<T> concat(List<T> a, List<T> b) {\r
-        List<T> result;\r
-        if(a instanceof ShareableList)\r
-            result = ((ShareableList<T>)a).appendAll(b);\r
-        else {\r
-            int aSize = a.size();\r
-            int bSize = b.size();\r
-            int size = aSize + bSize;\r
-            T[] newElements = (T[])new Object[(size*3)/2 + 1];\r
-            for(int i=0;i<aSize;++i)\r
-                newElements[i] = a.get(i);\r
-            for(int i=0;i<bSize;++i)\r
-                newElements[aSize + i] = b.get(i);\r
-            result = new ShareableList<T>(newElements, size, true);\r
-        }\r
-        //System.out.println(a + " + " + b + " = " + result);\r
-        return result;\r
-    }\r
-    \r
-}\r
+package org.simantics.scl.runtime.list;
+
+import java.util.AbstractList;
+import java.util.Arrays;
+import java.util.List;
+
+public class ShareableList<T> extends AbstractList<T> {
+
+    public static final int INITIAL_CAPACITY = 4;
+    
+    T[] elements;
+    int size;
+    boolean head;
+    
+    public ShareableList(T[] elements, int size, boolean head) {
+        this.elements = elements;
+        this.size = size;
+        this.head = head;
+    }
+    
+    @SuppressWarnings("unchecked")
+    public ShareableList() {
+        this.elements = (T[])new Object[INITIAL_CAPACITY];
+        this.size = 0;
+        this.head = true;
+    }
+
+    @Override
+    public T get(int index) {
+        if(index < 0 || index >= size)
+            throw new IndexOutOfBoundsException();
+        return elements[index];
+    }
+
+    @Override
+    public int size() {
+        return size;
+    }
+
+    @SuppressWarnings("unchecked")
+    public ShareableList<T> append(T element) {
+        T[] newElements;
+        if(size < elements.length) {            
+            if(head) {
+                head = false;
+                newElements = elements;
+            }
+            else {
+                newElements = (T[])new Object[elements.length];
+                System.arraycopy(elements, 0, newElements, 0, size);
+            }
+        }
+        else {
+            newElements = Arrays.copyOf(elements, (elements.length*3)/2 + 1);            
+        }
+        newElements[size] = element;
+        return new ShareableList<T>(newElements, size+1, true);
+    }
+    
+    @SuppressWarnings("unchecked")
+    public ShareableList<T> appendAll(List<T> xs) {
+        int count = xs.size();
+        int size = this.size;
+        int newSize = size + count;
+        
+        T[] newElements;
+        if(newSize <= elements.length) {            
+            if(head) {
+                head = false;
+                newElements = elements;
+            }
+            else {
+                newElements = (T[])new Object[elements.length];
+                System.arraycopy(elements, 0, newElements, 0, size);
+            }
+        }
+        else {
+            newElements = Arrays.copyOf(elements, Math.max((elements.length*3)/2 + 1, newSize));            
+        }
+        for(int i=0;i<count;++i)
+            newElements[i+size] = xs.get(i);
+        return new ShareableList<T>(newElements, newSize, true);
+    }
+    
+    @SuppressWarnings("unchecked")
+    public static <T> List<T> add(List<T> list, T element) {
+        List<T> result;
+        if(list instanceof ShareableList)
+            result = ((ShareableList<T>)list).append(element);
+        else {
+            int size = list.size();
+            T[] newElements = (T[])new Object[(size*3)/2 + 1];
+            for(int i=0;i<size;++i)
+                newElements[i] = list.get(i);
+            newElements[size] = element;
+            result = new ShareableList<T>(newElements, size+1, true);
+        }
+        //System.out.println(list + " + " + element + " = " + result);
+        return result;
+    }
+    
+    @SuppressWarnings("unchecked")
+    public static <T> List<T> concat(List<T> a, List<T> b) {
+        List<T> result;
+        if(a instanceof ShareableList)
+            result = ((ShareableList<T>)a).appendAll(b);
+        else {
+            int aSize = a.size();
+            int bSize = b.size();
+            int size = aSize + bSize;
+            T[] newElements = (T[])new Object[(size*3)/2 + 1];
+            for(int i=0;i<aSize;++i)
+                newElements[i] = a.get(i);
+            for(int i=0;i<bSize;++i)
+                newElements[aSize + i] = b.get(i);
+            result = new ShareableList<T>(newElements, size, true);
+        }
+        //System.out.println(a + " + " + b + " = " + result);
+        return result;
+    }
+    
+}