view src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/xmlReadTest/SaxTest.java @ 4:9f6ac805d323

minner change
author one
date Fri, 24 Oct 2014 18:00:36 +0900
parents faedeec97605
children 6f9439ca3eb5
line wrap: on
line source

package jp.ac.u_ryukyu.cr.ie.tatsuki.xmlReadTest;

import java.io.*;
import java.nio.ByteBuffer;
import java.util.Iterator;

import javax.xml.parsers.*;

import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungle;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair;
import junit.framework.Assert;

class SaxTest {
	public static void main(String args[]) {
		try {
			SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
			SAXParser saxParser = saxParserFactory.newSAXParser();
			Jungle jungle = new DefaultJungle(null, "hoge",new DefaultTreeEditor(new DefaultTraverser()));
			JungleTree tree = jungle.createNewTree("XMLTEST");
			TestHandler testHandler = new TestHandler(tree);
			saxParser.parse(new FileInputStream("/Users/e115731/workspace/aaa/xml/sample.xml"), testHandler);
			JungleTree newTree = testHandler.getTree();
			InterfaceTraverser ifTraverser = newTree.getTraverser();

			Iterator<Pair<TreeNode, NodePath>> searchNode = ifTraverser.find((
					TreeNode node) -> {
				ByteBuffer attribute = node.getAttributes().get("element");
				if (attribute != null) {
					byte[] byteAttribute = attribute.array();
					String str = new String(byteAttribute);
					System.out.println("attribute = " + str);
					return str.equals("Person");
				}
				return false;
			}, "element", "Person");
			Pair<TreeNode, NodePath> nodePair = searchNode.next();
			Assert.assertEquals(nodePair.left().getAttributes().getString("element"),"Person");
			Assert.assertEquals(nodePair.right().toString(), "<-1,0>");

			
			searchNode = ifTraverser.find((TreeNode node) -> {
				ByteBuffer attribute = node.getAttributes().get("element");
				if (attribute != null) {
					byte[] byteAttribute = attribute.array();
					String str = new String(byteAttribute);
					System.out.println("attribute = " + str);
					return str.equals("name");
				}
				return false;
			}, "element", "name");
			
			nodePair = searchNode.next();
			Assert.assertEquals(nodePair.left().getAttributes().getString("text"),"tatsuki");
			Assert.assertEquals(nodePair.right().toString(), "<-1,0,0>");
			
			searchNode = ifTraverser.find((TreeNode node) -> {
				ByteBuffer attribute = node.getAttributes().get("text");
				if (attribute != null) {
					byte[] byteAttribute = attribute.array();
					String str = new String(byteAttribute);
					System.out.println("attribute = " + str);
					return str.equals("tatsuki");
				}
				return false;
			}, "text", "tatsuki");
			
			nodePair = searchNode.next();
			Assert.assertEquals(nodePair.left().getAttributes().getString("id"),"10");
			Assert.assertEquals(nodePair.right().toString(), "<-1,0,0>");

			searchNode = ifTraverser.find((TreeNode node) -> {
				ByteBuffer attribute = node.getAttributes().get("id");
				if (attribute != null) {
					byte[] byteAttribute = attribute.array();
					String str = new String(byteAttribute);
					System.out.println("attribute = " + str);
					return str.equals("10");
				}
				return false;
			}, "id", "10");
			
			nodePair = searchNode.next();
			Assert.assertEquals(nodePair.left().getAttributes().getString("id"),"10");
			Assert.assertEquals(nodePair.right().toString(), "<-1,0,0>");
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}