OSDN Git Service

removed all files
[xerial/xerial-core.git] / src / main / java / org / xerial / lens / relation / TupleIndex.java
diff --git a/src/main/java/org/xerial/lens/relation/TupleIndex.java b/src/main/java/org/xerial/lens/relation/TupleIndex.java
deleted file mode 100755 (executable)
index 21b2817..0000000
+++ /dev/null
@@ -1,204 +0,0 @@
-/*--------------------------------------------------------------------------\r
- *  Copyright 2009 Taro L. Saito\r
- *\r
- *  Licensed under the Apache License, Version 2.0 (the "License");\r
- *  you may not use this file except in compliance with the License.\r
- *  You may obtain a copy of the License at\r
- *\r
- *     http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- *  Unless required by applicable law or agreed to in writing, software\r
- *  distributed under the License is distributed on an "AS IS" BASIS,\r
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- *  See the License for the specific language governing permissions and\r
- *  limitations under the License.\r
- *--------------------------------------------------------------------------*/\r
-//--------------------------------------\r
-// XerialJ\r
-//\r
-// TupleIndex.java\r
-// Since: 2009/05/13 9:29:15\r
-//\r
-// $URL$\r
-// $Author$\r
-//--------------------------------------\r
-package org.xerial.lens.relation;\r
-\r
-import org.xerial.core.XerialError;\r
-import org.xerial.core.XerialErrorCode;\r
-\r
-/**\r
- * Dot-separated number for specifying a position in a node tuple, e.g., 1, 1.1,\r
- * 1.2, ...etc.\r
- * \r
- * @author leo\r
- * \r
- */\r
-public class TupleIndex implements Comparable<TupleIndex> {\r
-    private int[] index;\r
-\r
-    /**\r
-     * Create an index with a single level, e.g., 1, 2, 3, ...\r
-     * \r
-     * @param baseIndex\r
-     */\r
-    public TupleIndex(int baseIndex) {\r
-        this.index = new int[1];\r
-        this.index[0] = baseIndex;\r
-    }\r
-\r
-    /**\r
-     * Create an index based on a parent index, e.g, 1.1, 1.2, 1.1.1, 1.1.2,\r
-     * ..etc.\r
-     * \r
-     * @param parent\r
-     * @param childIndex\r
-     */\r
-    public TupleIndex(TupleIndex parent, int childIndex) {\r
-        if (parent == null) {\r
-            this.index = new int[1];\r
-            this.index[0] = childIndex;\r
-        }\r
-        else {\r
-            this.index = new int[parent.size() + 1];\r
-            for (int i = 0; i < parent.size(); ++i)\r
-                index[i] = parent.get(i);\r
-            index[parent.size()] = childIndex;\r
-        }\r
-    }\r
-\r
-    public static TupleIndex root() {\r
-        return new TupleIndex(0);\r
-    }\r
-\r
-    public static TupleIndex parse(String indexStr) {\r
-        if (indexStr == null)\r
-            throw new NullPointerException("indexStr");\r
-\r
-        String[] component = indexStr.split("\\.");\r
-        if (component == null)\r
-            throw new XerialError(XerialErrorCode.INVALID_INPUT, "invalid format:" + indexStr);\r
-\r
-        int[] index = new int[component.length];\r
-        for (int i = 0; i < component.length; ++i)\r
-            index[i] = Integer.parseInt(component[i]);\r
-        return new TupleIndex(index);\r
-    }\r
-\r
-    private TupleIndex(int[] index) {\r
-        this.index = index;\r
-    }\r
-\r
-    public TupleIndex parent() {\r
-        if (index.length <= 1)\r
-            return null;\r
-\r
-        int[] newIndex = new int[index.length - 1];\r
-        for (int i = 0; i < index.length - 1; ++i)\r
-            newIndex[i] = index[i];\r
-        return new TupleIndex(newIndex);\r
-    }\r
-\r
-    public TupleIndex tail() {\r
-        if (index.length < 2)\r
-            return null;\r
-\r
-        int[] newIndex = new int[index.length - 1];\r
-        for (int i = 1; i < index.length; ++i)\r
-            newIndex[i - 1] = index[i];\r
-        return new TupleIndex(newIndex);\r
-    }\r
-\r
-    public TupleIndex sibling() {\r
-        int[] newIndex = new int[index.length];\r
-        for (int i = 0; i < index.length; ++i)\r
-            newIndex[i] = index[i];\r
-        newIndex[index.length - 1]++;\r
-        return new TupleIndex(newIndex);\r
-    }\r
-\r
-    /**\r
-     * nested level\r
-     * \r
-     * @return nested level\r
-     */\r
-    public int size() {\r
-        return index.length;\r
-    }\r
-\r
-    public boolean hasParent() {\r
-        return index.length > 1;\r
-    }\r
-\r
-    public boolean hasTail() {\r
-        return index.length > 1;\r
-    }\r
-\r
-    /**\r
-     * Get the index on the specified level\r
-     * \r
-     * @param level\r
-     * @return\r
-     */\r
-    public int get(int level) {\r
-        return index[level];\r
-    }\r
-\r
-    @Override\r
-    public String toString() {\r
-        StringBuilder buf = new StringBuilder();\r
-        for (int i = 0; i < index.length; i++) {\r
-            if (i != 0)\r
-                buf.append(".");\r
-            buf.append(index[i]);\r
-        }\r
-        return buf.toString();\r
-    }\r
-\r
-    @Override\r
-    public boolean equals(Object obj) {\r
-        TupleIndex other = TupleIndex.class.cast(obj);\r
-        if (this.index.length != other.index.length)\r
-            return false;\r
-\r
-        for (int i = 0; i < this.index.length; ++i) {\r
-            if (this.index[i] != other.index[i])\r
-                return false;\r
-        }\r
-        return true;\r
-\r
-    }\r
-\r
-    public int compareTo(TupleIndex other) {\r
-        int i1 = 0;\r
-        int i2 = 0;\r
-        int cmp = 0;\r
-        while (i1 < this.index.length && i2 < other.index.length) {\r
-            int e1 = this.index[i1];\r
-            int e2 = other.index[i2];\r
-            cmp = e1 - e2;\r
-            if (cmp != 0)\r
-                return cmp;\r
-\r
-            i1++;\r
-            i2++;\r
-        }\r
-        if (i1 < this.index.length)\r
-            return 1;\r
-        else {\r
-            if (i2 < other.index.length)\r
-                return -1;\r
-            else\r
-                return 0;\r
-        }\r
-    }\r
-\r
-    @Override\r
-    public int hashCode() {\r
-        int hash = 3;\r
-        for (int i = 0; i < index.length; ++i)\r
-            hash += 137 * index[i];\r
-        return hash / 1987;\r
-    }\r
-\r
-}\r