OSDN Git Service

removed all files
[xerial/xerial-core.git] / src / main / java / org / xerial / util / BitVector.java
diff --git a/src/main/java/org/xerial/util/BitVector.java b/src/main/java/org/xerial/util/BitVector.java
deleted file mode 100755 (executable)
index bacd924..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-/*--------------------------------------------------------------------------\r
- *  Copyright 2008 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
-// BitVector.java\r
-// Since: 2008/11/08 9:29:14\r
-//\r
-// $URL$\r
-// $Author$\r
-//--------------------------------------\r
-package org.xerial.util;\r
-\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-\r
-/**\r
- * bit array, which consists of zero (false) or one (true) values\r
- * \r
- * @author leo\r
- * \r
- */\r
-public class BitVector\r
-{\r
-    private final static int   BIT_LENGTH = 32;\r
-    private ArrayList<Integer> bitVector  = new ArrayList<Integer>();\r
-    private int                size       = 0;\r
-\r
-    public BitVector()\r
-    {}\r
-\r
-    public BitVector(int size)\r
-    {\r
-        extend(size - 1);\r
-    }\r
-\r
-    public void on(int index)\r
-    {\r
-        set(index, true);\r
-    }\r
-\r
-    public void off(int index)\r
-    {\r
-        set(index, false);\r
-    }\r
-\r
-    public void set(int index, boolean flag)\r
-    {\r
-        extend(index);\r
-\r
-        int pos = pos(index);\r
-        int mask = 0x01 << offset(index);\r
-\r
-        int value = bitVector.get(pos);\r
-        bitVector.set(pos, flag ? (value |= mask) : (value &= ~mask));\r
-    }\r
-\r
-    public boolean get(int index)\r
-    {\r
-        int pos = pos(index);\r
-        if (pos >= bitVector.size())\r
-            return false;\r
-\r
-        int value = bitVector.get(pos);\r
-        int mask = 0x01 << offset(index);\r
-        return (value &= mask) != 0;\r
-    }\r
-\r
-    private static int pos(int index)\r
-    {\r
-        return index / BIT_LENGTH;\r
-    }\r
-\r
-    private static int offset(int index)\r
-    {\r
-        return index % BIT_LENGTH;\r
-    }\r
-\r
-    private void extend(int index)\r
-    {\r
-        if (size <= index)\r
-            size = index + 1;\r
-\r
-        int pos = pos(index);\r
-        if (pos < bitVector.size())\r
-            return;\r
-\r
-        while (bitVector.size() <= pos)\r
-            bitVector.add(0);\r
-    }\r
-\r
-    @Override\r
-    public boolean equals(Object obj)\r
-    {\r
-        if (!BitVector.class.isInstance(obj))\r
-            return false;\r
-\r
-        BitVector other = BitVector.class.cast(obj);\r
-\r
-        // compare the size\r
-        if (size() != other.size())\r
-            return false;\r
-\r
-        // compare each byte\r
-        int byteLength = byteLength();\r
-\r
-        for (int i = 0; i < byteLength; i++)\r
-        {\r
-            if (!this.bitVector.get(i).equals(other.bitVector.get(i)))\r
-                return false;\r
-        }\r
-\r
-        return true;\r
-    }\r
-\r
-    private int byteLength()\r
-    {\r
-        int maxBitPos = size() - 1;\r
-        if (maxBitPos < 0)\r
-            maxBitPos = 0;\r
-        return pos(maxBitPos) + (offset(maxBitPos) == 0 ? 0 : 1);\r
-    }\r
-\r
-    @Override\r
-    public int hashCode()\r
-    {\r
-        int hashValue = 3;\r
-\r
-        int byteLength = byteLength();\r
-        for (int i = 0; i < byteLength; i++)\r
-        {\r
-            hashValue += hashValue * 137 + bitVector.get(i);\r
-        }\r
-\r
-        return hashValue % 1987;\r
-    }\r
-\r
-    /**\r
-     * @param array\r
-     */\r
-    private BitVector(List<Integer> array, int bitSize)\r
-    {\r
-        this.size = bitSize;\r
-        // copy the array\r
-        for (int v : array)\r
-        {\r
-            this.bitVector.add(v);\r
-        }\r
-    }\r
-\r
-    public static BitVector newInstance(BitVector source)\r
-    {\r
-        return new BitVector(source.bitVector, source.size);\r
-    }\r
-\r
-    public static BitVector newInstanceWithAnAdditionalBit(BitVector source, int bitIndexToAdd)\r
-    {\r
-        BitVector newInstance = new BitVector(source.bitVector, source.size);\r
-        newInstance.on(bitIndexToAdd);\r
-        return newInstance;\r
-    }\r
-\r
-    public int size()\r
-    {\r
-        return size;\r
-    }\r
-\r
-    public void clear()\r
-    {\r
-        bitVector.clear();\r
-        size = 0;\r
-    }\r
-\r
-    @Override\r
-    public String toString()\r
-    {\r
-        StringBuilder buf = new StringBuilder();\r
-        for (int i = 0; i < size; i++)\r
-            buf.append(get(i) ? "1" : "0");\r
-        return buf.toString();\r
-    }\r
-\r
-}\r