OSDN Git Service

removed all files
[xerial/xerial-core.git] / src / test / java / org / xerial / silk / TreeWalkLog.java
diff --git a/src/test/java/org/xerial/silk/TreeWalkLog.java b/src/test/java/org/xerial/silk/TreeWalkLog.java
deleted file mode 100755 (executable)
index 103b9db..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
-// TreeWalkLog.java\r
-// Since: Feb 5, 2009 2:00:05 PM\r
-//\r
-// $URL: http://www.xerial.org/svn/project/XerialJ/trunk/xerial-core/src/test/java/org/xerial/silk/TreeWalkLog.java $\r
-// $Author: leo $\r
-//--------------------------------------\r
-package org.xerial.silk;\r
-\r
-import java.util.Iterator;\r
-import java.util.LinkedList;\r
-import java.util.List;\r
-\r
-import org.xerial.core.XerialException;\r
-import org.xerial.util.ArrayDeque;\r
-import org.xerial.util.Deque;\r
-import org.xerial.util.StringUtil;\r
-import org.xerial.util.log.Logger;\r
-import org.xerial.util.tree.TreeVisitor;\r
-import org.xerial.util.tree.TreeWalker;\r
-\r
-/**\r
- * Collects tree visitor event\r
- * \r
- * @author leo\r
- * \r
- */\r
-public class TreeWalkLog implements TreeVisitor {\r
-    private static Logger _logger = Logger.getLogger(TreeWalkLog.class);\r
-\r
-    public static enum Event {\r
-        INIT, FINISH, VISIT, LEAVE\r
-    }\r
-\r
-    public static class EventLog {\r
-        Event event;\r
-        String nodeName = null;\r
-        String value = null;\r
-\r
-        public EventLog(Event event) {\r
-            this.event = event;\r
-        }\r
-\r
-        public EventLog(Event event, String nodeName, String value) {\r
-            this.event = event;\r
-            this.nodeName = nodeName;\r
-            this.value = value;\r
-        }\r
-\r
-        public static boolean strCmp(String a, String b) {\r
-            if (a == null)\r
-                return b == null;\r
-            else {\r
-                if (b == null)\r
-                    return false;\r
-\r
-                return a.equals(b);\r
-            }\r
-        }\r
-\r
-        @Override\r
-        public boolean equals(Object o) {\r
-            EventLog other = (EventLog) o;\r
-            if (event != other.event)\r
-                return false;\r
-\r
-            if (!strCmp(nodeName, other.nodeName))\r
-                return false;\r
-\r
-            return strCmp(value, other.value);\r
-        }\r
-\r
-        @Override\r
-        public String toString() {\r
-            if (nodeName != null) {\r
-                if (value != null)\r
-                    return String.format("%s:%s=%s", event, nodeName, value);\r
-                else\r
-                    return String.format("%s:%s", event, nodeName);\r
-            }\r
-            else {\r
-                if (value != null)\r
-                    return String.format("%s:%s", event, value);\r
-                else\r
-                    return String.format("%s", event);\r
-            }\r
-        }\r
-    }\r
-\r
-    private List<EventLog> log = new LinkedList<EventLog>();\r
-\r
-    private Deque<StringBuilder> textStack = new ArrayDeque<StringBuilder>();\r
-    private final StringBuilder EMPTY_BUFFER = new StringBuilder(0);\r
-    private String pendingVisitNode = null;\r
-\r
-    public void finish(TreeWalker walker) throws XerialException {\r
-        log.add(new EventLog(Event.FINISH));\r
-    }\r
-\r
-    public void init(TreeWalker walker) throws XerialException {\r
-        log.add(new EventLog(Event.INIT));\r
-        textStack.addLast(EMPTY_BUFFER);\r
-    }\r
-\r
-    public void leaveNode(String nodeName, TreeWalker walker) throws XerialException {\r
-        if (nodeName == null)\r
-            return; // skip empty node leave (e.g. JSON Object root bracket)\r
-\r
-        popPendingNode();\r
-\r
-        log.add(new EventLog(Event.LEAVE, nodeName, null));\r
-        textStack.removeLast();\r
-    }\r
-\r
-    public void text(String nodeName, String textDataFragment, TreeWalker walker)\r
-            throws XerialException {\r
-        if (textStack.peekLast() == EMPTY_BUFFER) {\r
-            textStack.removeLast();\r
-            textStack.addLast(new StringBuilder());\r
-        }\r
-        textStack.peekLast().append(textDataFragment);\r
-    }\r
-\r
-    private void popPendingNode() {\r
-        if (pendingVisitNode != null) {\r
-            if (textStack.peekLast() != EMPTY_BUFFER)\r
-                log\r
-                        .add(new EventLog(Event.VISIT, pendingVisitNode, textStack.peekLast()\r
-                                .toString()));\r
-            else\r
-                log.add(new EventLog(Event.VISIT, pendingVisitNode, null));\r
-\r
-            pendingVisitNode = null;\r
-        }\r
-    }\r
-\r
-    public void visitNode(String nodeName, String immediateNodeValue, TreeWalker walker)\r
-            throws XerialException {\r
-        popPendingNode();\r
-\r
-        if (nodeName == null)\r
-            return; // skip empty node visit (e.g. JSON Object root bracket)\r
-\r
-        pendingVisitNode = nodeName;\r
-\r
-        if (immediateNodeValue != null)\r
-            textStack.addLast(new StringBuilder(immediateNodeValue));\r
-        else\r
-            textStack.addLast(EMPTY_BUFFER);\r
-    }\r
-\r
-    public List<EventLog> getLog() {\r
-        return log;\r
-    }\r
-\r
-    @Override\r
-    public String toString() {\r
-        return StringUtil.join(log, "\n");\r
-    }\r
-\r
-    public static boolean compare(TreeWalkLog a, TreeWalkLog b) {\r
-        List<EventLog> l1 = a.getLog();\r
-        List<EventLog> l2 = b.getLog();\r
-\r
-        Iterator<EventLog> i1 = l1.iterator();\r
-        Iterator<EventLog> i2 = l2.iterator();\r
-\r
-        boolean doComparison = true;\r
-\r
-        while (i1.hasNext() && i2.hasNext()) {\r
-            EventLog e1 = i1.next();\r
-            EventLog e2 = i2.next();\r
-\r
-            if (!e1.equals(e2) && doComparison) {\r
-                _logger.warn(String.format("--mismatch- %-20s %-20s", e1, e2));\r
-                doComparison = false;\r
-            }\r
-            else {\r
-                _logger.debug(String.format("compare ok: %-20s %-20s", e1, e2));\r
-            }\r
-        }\r
-        if (l1.size() != l2.size())\r
-            doComparison = false;\r
-        return doComparison;\r
-    }\r
-\r
-}\r