view src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/xmlReadTest/SaxTest.java @ 42:c036d36c33af

function refactor
author one
date Tue, 25 Nov 2014 11:57:17 +0900
parents 6f9439ca3eb5
children 1bdd50e26fac
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("xml/sample.xml"), testHandler);
			JungleTree newTree = testHandler.getTree();
			InterfaceTraverser ifTraverser = newTree.getTraverser();

			Iterator<TreeNode> searchNodeIterator = 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");
			TreeNode searchNode = searchNodeIterator.next();
			Assert.assertEquals(searchNode.getAttributes().getString("element"),"Person");

			
			searchNodeIterator = 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");
			
			searchNode = searchNodeIterator.next();
			Assert.assertEquals(searchNode.getAttributes().getString("text"),"tatsuki");
			
			searchNodeIterator = 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");
			
			searchNode = searchNodeIterator.next();
			Assert.assertEquals(searchNode.getAttributes().getString("id"),"10");

			searchNodeIterator = 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");
			
			searchNode = searchNodeIterator.next();
			Assert.assertEquals(searchNode.getAttributes().getString("id"),"10");
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}