# HG changeset patch
# User Kazuma
# Date 1480438075 -32400
# Node ID 44465893e8b8b85c1b32c31960c80726e64bcce4
first Commit
diff -r 000000000000 -r 44465893e8b8 LICENSE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LICENSE Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,22 @@
+Copyright (c) 2014-2014 Shinji KONO, Kazuki Akamine, Shoshi Tamaki, Nobuyasu Ohoshiro, Yu Sugimoto, Tatsuki Kanagawa
+ Information Engineeering, University of the Ryukyus
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
diff -r 000000000000 -r 44465893e8b8 benchmark/find.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/benchmark/find.js Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,16 @@
+function findDataLoop () {
+var date_obj = new Date();
+var milliseconds = date_obj.getTime();
+for (var i = 1; i<= 50000; i++) {
+ var personData = db.person1.find({PersonId:"p:9"}).next();
+ var roleId = personData.roleId
+}
+date_obj = new Date();
+print(date_obj.getTime() - milliseconds)
+}
+
+function findData () {
+ var personVer = db.config.find({configVer:"v:1"}).next().PersonVer;
+ var personCollection = db.getCollection(personVer);
+ db.person1.find({PersonId:"p:9"}).next();
+}
diff -r 000000000000 -r 44465893e8b8 benchmark/insert.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/benchmark/insert.js Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,13 @@
+function insertData(personCount) {
+db.person1.drop();
+for (var i = 1; i<= personCount ; i++) {
+
+ var user = {
+
+ PersonId: "p:" + String(i),
+ roleRefIds:"r:" + String(i)}
+ db.person1.insert(user);
+}
+
+db.person1.createIndex({PersonId:1});
+}
diff -r 000000000000 -r 44465893e8b8 build.gradle
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/build.gradle Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,48 @@
+apply plugin: "java"
+
+sourceCompatibility = 1.8
+targetCompatibility = 1.8
+[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
+version = '1.0'
+
+repositories {
+ mavenCentral()
+ maven { url "http://eaio.com/maven2" }
+ maven { url "http://repo.maven.apache.org/maven2" }
+}
+
+dependencies {
+ compile group: 'org.mongodb', name: 'mongo-java-driver', version: '3.0.0'
+ compile "commons-collections:commons-collections:3.2.1"
+ compile "org.apache.maven.surefire:surefire-junit4:2.13"
+ compile "com.google.guava:guava:12.0"
+ compile fileTree(dir: 'lib', include: '*.jar')
+ compile "junit:junit:4.7"
+ compile group: 'org.eclipse.jetty', name: 'jetty-server', version:'9.1.1.v20140108'
+ compile group: 'org.eclipse.jetty', name: 'jetty-servlet', version:'9.2.1.v20140609'
+ compile group: 'org.hectorclient', name: 'hector-core', version:'1.1-2'
+ compile group: 'com.github.stephenc.eaio-uuid', name: 'uuid', version:'3.3.0'
+ compile(group: 'org.apache.cassandra', name: 'cassandra-all', version:'1.2.1') {
+ exclude(module: 'slf4j-log4j12')
+ exclude(module: 'log4j')
+ }
+}
+
+
+
+
+jar {
+ manifest {
+ attributes 'Implementation-Title': 'Gradle Quickstart', 'Implementation-Version': version
+ }
+ from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
+ archiveName = 'jungle-core.jar'
+}
+
+uploadArchives {
+ repositories {
+ flatDir {
+ dirs '.'
+ }
+ }
+}
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/DefaultJungle$1.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/DefaultJungle$1.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/DefaultJungle.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/DefaultJungle.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/DefaultJungleTree.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/DefaultJungleTree.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/Jungle.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/Jungle.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/JungleTree.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/JungleTree.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/JungleTreeEditor.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/JungleTreeEditor.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/App.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/App.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/BoardMessage.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/BoardMessage.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/BulletinBoard.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/BulletinBoard.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/CassandraBulletinBoard$1.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/CassandraBulletinBoard$1.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/CassandraBulletinBoard$2.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/CassandraBulletinBoard$2.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/CassandraBulletinBoard$BoardMessageImpl.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/CassandraBulletinBoard$BoardMessageImpl.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/CassandraBulletinBoard.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/CassandraBulletinBoard.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/CreateBoardMessageServlet.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/CreateBoardMessageServlet.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/CreateBoardServlet.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/CreateBoardServlet.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/EditMessageServlet.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/EditMessageServlet.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/EditMessageUseGetServlet.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/EditMessageUseGetServlet.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/GetAttributeImp.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/GetAttributeImp.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/HectorSample.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/HectorSample.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/IterableConverter$Converter.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/IterableConverter$Converter.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/IterableConverter$IteratorConverter.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/IterableConverter$IteratorConverter.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/IterableConverter.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/IterableConverter.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/JungleBulletinBoard$1.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/JungleBulletinBoard$1.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/JungleBulletinBoard$2.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/JungleBulletinBoard$2.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/JungleBulletinBoard$BoardMessageImpl.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/JungleBulletinBoard$BoardMessageImpl.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/JungleBulletinBoard.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/JungleBulletinBoard.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/ShowBoardMessageServlet.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/ShowBoardMessageServlet.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/ShowBoardsServlet.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/bbs/ShowBoardsServlet.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/benchMark/Data/TreeMapBenchMark.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/benchMark/Data/TreeMapBenchMark.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/benchMark/JungleBenchMark.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/benchMark/JungleBenchMark.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/core/App.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/core/App.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/core/Attributes.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/core/Attributes.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/core/Children.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/core/Children.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/list/DefaultNode.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/list/DefaultNode.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/list/List$1.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/list/List$1.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/list/List$2.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/list/List$2.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/list/List.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/list/List.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/list/Node.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/list/Node.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/list/TailNode.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/list/TailNode.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/list/headNode.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/list/headNode.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/treemap/BlackNode.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/treemap/BlackNode.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/treemap/DefaultComparator.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/treemap/DefaultComparator.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/treemap/EmptyNode.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/treemap/EmptyNode.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/treemap/Node.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/treemap/Node.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/treemap/RedNode.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/treemap/RedNode.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/treemap/Rotate.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/treemap/Rotate.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/treemap/RotateParent.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/treemap/RotateParent.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/treemap/TreeMap$1.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/treemap/TreeMap$1.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/treemap/TreeMap.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/treemap/TreeMap.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/treemap/rebuildNode.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/data/treemap/rebuildNode.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/error/BasicErrors.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/error/BasicErrors.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/persistent/ChangeList.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/persistent/ChangeList.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/persistent/ChangeListReader.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/persistent/ChangeListReader.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/persistent/ChangeListWriter.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/persistent/ChangeListWriter.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/persistent/DefaultChangeListReader.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/persistent/DefaultChangeListReader.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/persistent/DefaultChangeListWriter.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/persistent/DefaultChangeListWriter.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/persistent/DefaultJournal.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/persistent/DefaultJournal.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/persistent/DefaultJournalWriter.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/persistent/DefaultJournalWriter.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/persistent/Journal.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/persistent/Journal.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/persistent/NullJournal$1.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/persistent/NullJournal$1.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/persistent/NullJournal$NullChangeListReader.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/persistent/NullJournal$NullChangeListReader.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/persistent/NullJournal$NullChangeListWriter.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/persistent/NullJournal$NullChangeListWriter.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/persistent/NullJournal.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/persistent/NullJournal.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/persistent/Result.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/persistent/Result.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/query/PathNodeIterator.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/query/PathNodeIterator.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/query/Query.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/query/Query.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/Command.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/Command.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/Constants.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/Constants.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/NodePath.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/NodePath.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/NulIterator.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/NulIterator.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/Transaction.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/Transaction.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/TreeContext.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/TreeContext.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/TreeEditor.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/TreeEditor.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/TreeEditorError.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/TreeEditorError.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/DefaultNodePath.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/DefaultNodePath.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/DefaultTreeEditor.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/DefaultTreeEditor.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/IndexTreeEditor.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/IndexTreeEditor.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/TreeNode.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/TreeNode.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/TreeNodeAttributes.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/TreeNodeAttributes.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/TreeNodeChildren.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/TreeNodeChildren.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/logger/DefaultOperationLog.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/logger/DefaultOperationLog.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/logger/DefaultTreeOperationLog.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/logger/DefaultTreeOperationLog.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/logger/LoggingAttributes.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/logger/LoggingAttributes.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/logger/LoggingChildren.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/logger/LoggingChildren.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/logger/LoggingNode.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/logger/LoggingNode.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/logger/OperationLog.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/logger/OperationLog.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/logger/TreeOperationLog.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/logger/TreeOperationLog.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/index/IndexCreater.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/index/IndexCreater.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/index/ParentIndex.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/index/ParentIndex.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/operations/AppendChildAtOperation.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/operations/AppendChildAtOperation.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/operations/DefaultTreeOperation.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/operations/DefaultTreeOperation.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/operations/DeleteAttributeOperation.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/operations/DeleteAttributeOperation.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/operations/DeleteChildAtOperation.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/operations/DeleteChildAtOperation.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/operations/NodeOperation.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/operations/NodeOperation.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/operations/PutAttributeOperation.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/operations/PutAttributeOperation.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/operations/ReplaceRootNodeOperation.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/operations/ReplaceRootNodeOperation.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/operations/TreeOperation.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/operations/TreeOperation.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/trasnformer/AppendChildAt.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/trasnformer/AppendChildAt.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/trasnformer/DeleteAttribute.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/trasnformer/DeleteAttribute.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/trasnformer/DeleteChildAt.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/trasnformer/DeleteChildAt.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/trasnformer/NodeEditor.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/trasnformer/NodeEditor.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/trasnformer/NodeEditorError.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/trasnformer/NodeEditorError.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/trasnformer/PutAttribute.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/trasnformer/PutAttribute.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/trasnformer/replaceRootNodeAt.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/store/trasnformer/replaceRootNodeAt.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/test/AbstractTreeMapThread.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/test/AbstractTreeMapThread.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/test/DataBaseBenchMark.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/test/DataBaseBenchMark.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/test/DataBaseBenchMarkThread.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/test/DataBaseBenchMarkThread.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/test/JungleWriteThread.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/test/JungleWriteThread.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/test/TatsukiTreeMapGetThread.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/test/TatsukiTreeMapGetThread.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/test/TreeMapBenchMark.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/test/TreeMapBenchMark.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/test/UtilTreeMapGetThread.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/test/UtilTreeMapGetThread.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/test/findMongoAttributeThread.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/test/findMongoAttributeThread.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/test/findTreeAttributeThread.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/test/findTreeAttributeThread.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/test/readTreeAttributeThread.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/test/readTreeAttributeThread.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/transaction/DefaultJungleTreeEditor$1.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/transaction/DefaultJungleTreeEditor$1.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/transaction/DefaultJungleTreeEditor.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/transaction/DefaultJungleTreeEditor.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/transaction/DefaultTransactionManager$1.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/transaction/DefaultTransactionManager$1.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/transaction/DefaultTransactionManager.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/transaction/DefaultTransactionManager.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/transaction/DefaultTreeContext.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/transaction/DefaultTreeContext.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/transaction/DefaultTreeNode.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/transaction/DefaultTreeNode.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/transaction/DefaultTreeNodeAttribute.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/transaction/DefaultTreeNodeAttribute.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/transaction/DefaultTreeNodeChildren.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/transaction/DefaultTreeNodeChildren.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/transaction/TransactionManager.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/transaction/TransactionManager.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/DefaultEvaluation.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/DefaultEvaluation.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/DefaultEvaluator.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/DefaultEvaluator.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/DefaultTraverser$1.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/DefaultTraverser$1.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/DefaultTraverser$2.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/DefaultTraverser$2.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/DefaultTraverser$3.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/DefaultTraverser$3.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/DefaultTraverser$4.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/DefaultTraverser$4.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/DefaultTraverser.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/DefaultTraverser.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/Direction.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/Direction.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/Evaluation.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/Evaluation.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/Evaluator.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/Evaluator.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/InterfaceTraverser$1.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/InterfaceTraverser$1.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/InterfaceTraverser.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/InterfaceTraverser.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/Result.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/Result.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/Traversal.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/Traversal.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/Traverser.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/Traverser.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/TraverserError.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/traverser/TraverserError.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/util/DefaultEither.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/util/DefaultEither.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/util/DefaultError.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/util/DefaultError.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/util/Either.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/util/Either.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/util/Error.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/util/Error.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/util/GetOldTreeError.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/util/GetOldTreeError.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/util/IterableConverter$Converter.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/util/IterableConverter$Converter.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/util/IterableConverter$IteratorConverter.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/util/IterableConverter$IteratorConverter.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/util/IterableConverter.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/util/IterableConverter.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/util/Pair.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/util/Pair.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/util/Triple.class
Binary file build/classes/main/jp/ac/u_ryukyu/ie/cr/jungle/util/Triple.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/DefaultJungleTreeTest.class
Binary file build/classes/test/DefaultJungleTreeTest.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/jp/ac/u_ryukyu/ie/cr/JDBCTest.class
Binary file build/classes/test/jp/ac/u_ryukyu/ie/cr/JDBCTest.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/jp/ac/u_ryukyu/ie/cr/JungleTest.class
Binary file build/classes/test/jp/ac/u_ryukyu/ie/cr/JungleTest.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/jp/ac/u_ryukyu/ie/cr/data/list/appendTest.class
Binary file build/classes/test/jp/ac/u_ryukyu/ie/cr/data/list/appendTest.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/jp/ac/u_ryukyu/ie/cr/data/list/deleteTest.class
Binary file build/classes/test/jp/ac/u_ryukyu/ie/cr/data/list/deleteTest.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/jp/ac/u_ryukyu/ie/cr/data/list/listAdd.class
Binary file build/classes/test/jp/ac/u_ryukyu/ie/cr/data/list/listAdd.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/jp/ac/u_ryukyu/ie/cr/data/list/listIterator.class
Binary file build/classes/test/jp/ac/u_ryukyu/ie/cr/data/list/listIterator.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/jp/ac/u_ryukyu/ie/cr/data/list/replaceTest.class
Binary file build/classes/test/jp/ac/u_ryukyu/ie/cr/data/list/replaceTest.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/jp/ac/u_ryukyu/ie/cr/data/treemap/TreeMapDelete.class
Binary file build/classes/test/jp/ac/u_ryukyu/ie/cr/data/treemap/TreeMapDelete.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/jp/ac/u_ryukyu/ie/cr/data/treemap/TreeMapTest.class
Binary file build/classes/test/jp/ac/u_ryukyu/ie/cr/data/treemap/TreeMapTest.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/jp/ac/u_ryukyu/ie/cr/data/treemap/TreeNodeIteratorTest.class
Binary file build/classes/test/jp/ac/u_ryukyu/ie/cr/data/treemap/TreeNodeIteratorTest.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/DefaultTest.class
Binary file build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/DefaultTest.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/core/AttributesTest.class
Binary file build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/core/AttributesTest.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/core/ChildrenTest.class
Binary file build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/core/ChildrenTest.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/core/GetNodeOfPathTest.class
Binary file build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/core/GetNodeOfPathTest.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/core/GetOldTreeTest.class
Binary file build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/core/GetOldTreeTest.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/core/impl/treeeditor/DefaultTreeEditorTest.class
Binary file build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/core/impl/treeeditor/DefaultTreeEditorTest.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/core/nodeeditor/AppendChildAtTest.class
Binary file build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/core/nodeeditor/AppendChildAtTest.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/core/nodeeditor/DeleteAttributeAtTest.class
Binary file build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/core/nodeeditor/DeleteAttributeAtTest.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/core/nodeeditor/DeleteChildAtTest.class
Binary file build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/core/nodeeditor/DeleteChildAtTest.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/core/nodeeditor/PutAttributeTest.class
Binary file build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/core/nodeeditor/PutAttributeTest.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/core/nodeeditor/ReplaceRootNodeAt.class
Binary file build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/core/nodeeditor/ReplaceRootNodeAt.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/impl/node/DefaultAttributesTest.class
Binary file build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/impl/node/DefaultAttributesTest.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/impl/node/DefaultChildrenTest.class
Binary file build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/impl/node/DefaultChildrenTest.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/index/parentIndexTest.class
Binary file build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/index/parentIndexTest.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/tests/util/TestUtil.class
Binary file build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/tests/util/TestUtil.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/traverse/InterfaceTraverserTest.class
Binary file build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/traverse/InterfaceTraverserTest.class has changed
diff -r 000000000000 -r 44465893e8b8 build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/traverse/TraverserTest.class
Binary file build/classes/test/jp/ac/u_ryukyu/ie/cr/jungle/traverse/TraverserTest.class has changed
diff -r 000000000000 -r 44465893e8b8 document/JungleMindmap.mm
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/document/JungleMindmap.mm Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,240 @@
+
diff -r 000000000000 -r 44465893e8b8 document/XACML.mm
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/document/XACML.mm Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,43 @@
+
diff -r 000000000000 -r 44465893e8b8 document/basic_api_architecture.graffle
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/document/basic_api_architecture.graffle Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,1131 @@
+
+
+
+
+ ActiveLayerIndex
+ 0
+ ApplicationVersion
+
+ com.omnigroup.OmniGraffle
+ 139.16.0.171715
+
+ AutoAdjust
+
+ BackgroundGraphic
+
+ Bounds
+ {{0, 0}, {559, 783}}
+ Class
+ SolidGraphic
+ ID
+ 2
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+
+ BaseZoom
+ 0
+ CanvasOrigin
+ {0, 0}
+ ColumnAlign
+ 1
+ ColumnSpacing
+ 36
+ CreationDate
+ 2012-12-07 10:37:40 +0000
+ Creator
+ shoshi
+ DisplayScale
+ 1 0/72 in = 1 0/72 in
+ GraphDocumentVersion
+ 8
+ GraphicsList
+
+
+ Bounds
+ {{279.5, 250.5}, {48, 14}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 104
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 <<use>>}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{255.5, 370}, {48, 14}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 102
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 <<use>>}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{441, 491.25}, {71, 14}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 103
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 <<extends>>}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{23.5, 10}, {57, 32}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 55
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;\f1\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 \'8a\'ee\'96\'7b
+\f1 API\
+Read Only}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 13
+
+ Head
+
+ ID
+ 34
+
+ ID
+ 52
+ Points
+
+ {268.99999385152552, 228.5}
+ {268.99999385152552, 286.5}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ Arrow
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ Pattern
+ 1
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 51
+
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{181, 174}, {176, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 13
+
+ ID
+ 50
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 <<inteface>>\
+Tree}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{181, 210}, {176, 18}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 13
+
+ ID
+ 51
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
++ Node getRoot()}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 50
+ 51
+
+
+ ID
+ 49
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 13
+
+ Head
+
+ ID
+ 35
+
+ ID
+ 47
+ Points
+
+ {396.4405562316386, 410.26124406682794}
+ {302.55881283802307, 359.23875942269564}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ 0
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ Pattern
+ 1
+ TailArrow
+ Arrow
+
+
+ Tail
+
+ ID
+ 40
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 13
+
+ Head
+
+ ID
+ 35
+
+ ID
+ 46
+ Points
+
+ {146.71805539866665, 410.25360103626548}
+ {236.78255255712509, 359.24640251709661}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ 0
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ Pattern
+ 1
+ TailArrow
+ Arrow
+
+
+ Tail
+
+ ID
+ 37
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 13
+
+ Head
+
+ ID
+ 42
+
+ ID
+ 54
+ Points
+
+ {430.03104574657306, 464.99999733370157}
+ {430.25, 531.99999100000002}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 53
+
+
+
+ Bounds
+ {{460.25, 538}, {83, 28}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 13
+
+ ID
+ 43
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 <<interface>>\
+Iterable<Node>}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{412, 532}, {36.5, 36}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 13
+
+ ID
+ 42
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Shape
+ Circle
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ VerticalPad
+ 0
+
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{337.5, 410.5}, {185, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 13
+
+ ID
+ 40
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 <<inteface>>\
+Children}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{337.5, 446.5}, {185, 18}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 13
+
+ ID
+ 53
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
++ Iterator<Node> iterator()}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 40
+ 53
+
+
+ ID
+ 39
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{22, 410.5}, {185, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 13
+
+ ID
+ 37
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 <<inteface>>\
+Attributes}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{22, 446.5}, {185, 18}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 13
+
+ ID
+ 38
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
++ ByteBuffer get(String key)}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 37
+ 38
+
+
+ ID
+ 36
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{181, 287}, {176, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 13
+
+ ID
+ 34
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 <<inteface>>\
+Node}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{181, 323}, {176, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 13
+
+ ID
+ 35
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
++ Attributes getAttribute()\
++ Children getChildren()}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 34
+ 35
+
+
+ ID
+ 33
+
+
+ GridInfo
+
+ GuidesLocked
+ NO
+ GuidesVisible
+ YES
+ HPages
+ 1
+ ImageCounter
+ 1
+ KeepToScale
+
+ Layers
+
+
+ Lock
+ NO
+ Name
+ レイヤー 1
+ Print
+ YES
+ View
+ YES
+
+
+ LayoutInfo
+
+ Animate
+ NO
+ circoMinDist
+ 18
+ circoSeparation
+ 0.0
+ layoutEngine
+ dot
+ neatoSeparation
+ 0.0
+ twopiSeparation
+ 0.0
+
+ LinksVisible
+ NO
+ MagnetsVisible
+ NO
+ MasterSheets
+
+ ModificationDate
+ 2012-12-10 11:32:24 +0000
+ Modifier
+ shoshi
+ NotesVisible
+ NO
+ Orientation
+ 2
+ OriginVisible
+ NO
+ PageBreaks
+ YES
+ PrintInfo
+
+ NSBottomMargin
+
+ float
+ 41
+
+ NSHorizonalPagination
+
+ coded
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG
+
+ NSLeftMargin
+
+ float
+ 18
+
+ NSPaperSize
+
+ size
+ {595, 842}
+
+ NSPrintReverseOrientation
+
+ int
+ 0
+
+ NSRightMargin
+
+ float
+ 18
+
+ NSTopMargin
+
+ float
+ 18
+
+
+ PrintOnePage
+
+ ReadOnly
+ NO
+ RowAlign
+ 1
+ RowSpacing
+ 36
+ SheetTitle
+ キャンバス 1
+ SmartAlignmentGuidesActive
+ YES
+ SmartDistanceGuidesActive
+ YES
+ UniqueID
+ 1
+ UseEntirePage
+
+ VPages
+ 1
+ WindowInfo
+
+ CurrentSheet
+ 0
+ ExpandedCanvases
+
+ Frame
+ {{-1477, 368}, {892, 1006}}
+ ListView
+
+ OutlineWidth
+ 142
+ RightSidebar
+
+ ShowRuler
+
+ Sidebar
+
+ SidebarWidth
+ 120
+ VisibleRegion
+ {{-99, -42}, {757, 867}}
+ Zoom
+ 1
+ ZoomValues
+
+
+ キャンバス 1
+ 1
+ 1
+
+
+
+
+
diff -r 000000000000 -r 44465893e8b8 document/basic_api_architecture.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/document/basic_api_architecture.svg Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,3 @@
+
+
+
diff -r 000000000000 -r 44465893e8b8 document/jungle_artitecture.graffle
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/document/jungle_artitecture.graffle Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,644 @@
+
+
+
+
+ ActiveLayerIndex
+ 0
+ ApplicationVersion
+
+ com.omnigroup.OmniGraffle
+ 139.16.0.171715
+
+ AutoAdjust
+
+ BackgroundGraphic
+
+ Bounds
+ {{0, 0}, {559, 783}}
+ Class
+ SolidGraphic
+ ID
+ 2
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+
+ BaseZoom
+ 0
+ CanvasOrigin
+ {0, 0}
+ ColumnAlign
+ 1
+ ColumnSpacing
+ 36
+ CreationDate
+ 2012-12-10 15:06:13 +0000
+ Creator
+ shoshi
+ DisplayScale
+ 1 0/72 in = 1.0000 in
+ GraphDocumentVersion
+ 8
+ GraphicsList
+
+
+ Bounds
+ {{290, 243.5}, {48, 14}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 49
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 <<use>>}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 41
+
+ ID
+ 48
+ Points
+
+ {275.5, 429.99999100000002}
+ {275.5, 355.49999999086265}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ 0
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ TailArrow
+ FilledArrow
+
+
+ Tail
+
+ ID
+ 44
+ Info
+ 2
+
+
+
+ Bounds
+ {{239, 483}, {73, 24}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 43
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs20 \cf0 <<interface>>\
+TraversableTree}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{257.25, 430}, {36.5, 36}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 44
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Shape
+ Circle
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ VerticalPad
+ 0
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 40
+
+ ID
+ 42
+ Points
+
+ {275.50001356530873, 218.5}
+ {275.50003223584122, 282.5}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ Arrow
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ Pattern
+ 1
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 35
+
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{148, 283}, {255, 18}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 40
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 JungleTree}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{148, 301}, {255, 54}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 41
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;\f1\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
++ MergeResult push(JungleDB remote)\
++ MergeResult pull(JungleDB remote)
+\f1 \kerning1\expnd0\expndtw0 \
+
+\f0 \expnd0\expndtw0\kerning0
++ TreeEditor getEditor()}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 40
+ 41
+
+
+ ID
+ 39
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{91.75, 103}, {367.5, 23}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 14
+
+ ID
+ 34
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs30 \cf0 JungleDB}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{91.75, 126}, {367.5, 92}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 14
+
+ ID
+ 35
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs30 \cf0 \expnd0\expndtw0\kerning0
++ Iterable<JungleTree> getTrees()\
++ JungleTree getTreeByName(String name)\
++ JungleTree createNewTree(String name)\
++ void deleteTree(String name)}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 34
+ 35
+
+
+ ID
+ 33
+
+
+ GridInfo
+
+ GuidesLocked
+ NO
+ GuidesVisible
+ YES
+ HPages
+ 1
+ ImageCounter
+ 1
+ KeepToScale
+
+ Layers
+
+
+ Lock
+ NO
+ Name
+ レイヤー 1
+ Print
+ YES
+ View
+ YES
+
+
+ LayoutInfo
+
+ Animate
+ NO
+ circoMinDist
+ 18
+ circoSeparation
+ 0.0
+ layoutEngine
+ dot
+ neatoSeparation
+ 0.0
+ twopiSeparation
+ 0.0
+
+ LinksVisible
+ NO
+ MagnetsVisible
+ NO
+ MasterSheets
+
+ ModificationDate
+ 2012-12-11 08:21:25 +0000
+ Modifier
+ shoshi
+ NotesVisible
+ NO
+ Orientation
+ 2
+ OriginVisible
+ NO
+ PageBreaks
+ YES
+ PrintInfo
+
+ NSBottomMargin
+
+ float
+ 41
+
+ NSHorizonalPagination
+
+ coded
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG
+
+ NSLeftMargin
+
+ float
+ 18
+
+ NSPaperSize
+
+ size
+ {595, 842}
+
+ NSPrintReverseOrientation
+
+ int
+ 0
+
+ NSRightMargin
+
+ float
+ 18
+
+ NSTopMargin
+
+ float
+ 18
+
+
+ PrintOnePage
+
+ ReadOnly
+ NO
+ RowAlign
+ 1
+ RowSpacing
+ 36
+ SheetTitle
+ キャンバス 1
+ SmartAlignmentGuidesActive
+ YES
+ SmartDistanceGuidesActive
+ YES
+ UniqueID
+ 1
+ UseEntirePage
+
+ VPages
+ 1
+ WindowInfo
+
+ CurrentSheet
+ 0
+ ExpandedCanvases
+
+ Frame
+ {{-1683, 185}, {693, 922}}
+ ListView
+
+ OutlineWidth
+ 142
+ RightSidebar
+
+ ShowRuler
+
+ Sidebar
+
+ SidebarWidth
+ 120
+ VisibleRegion
+ {{0, 0}, {558, 783}}
+ Zoom
+ 1
+ ZoomValues
+
+
+ キャンバス 1
+ 1
+ 1
+
+
+
+
+
diff -r 000000000000 -r 44465893e8b8 document/jungle_artitecture.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/document/jungle_artitecture.svg Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,3 @@
+
+
+
diff -r 000000000000 -r 44465893e8b8 document/node_transform_architecture.graffle
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/document/node_transform_architecture.graffle Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,1621 @@
+
+
+
+
+ ActiveLayerIndex
+ 0
+ ApplicationVersion
+
+ com.omnigroup.OmniGraffle
+ 139.16.0.171715
+
+ AutoAdjust
+
+ BackgroundGraphic
+
+ Bounds
+ {{0, 0}, {559, 783}}
+ Class
+ SolidGraphic
+ ID
+ 2
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+
+ BaseZoom
+ 0
+ CanvasOrigin
+ {0, 0}
+ ColumnAlign
+ 1
+ ColumnSpacing
+ 36
+ CreationDate
+ 2012-12-10 15:16:19 +0000
+ Creator
+ shoshi
+ DisplayScale
+ 1 0/72 in = 1 0/72 in
+ GraphDocumentVersion
+ 8
+ GraphicsList
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 101
+
+ ID
+ 128
+ Points
+
+ {80.750009124999949, 468}
+ {151.50000632809025, 467.6440251549617}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ 0
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ TailArrow
+ FilledArrow
+
+
+ Tail
+
+ ID
+ 126
+
+
+
+ Bounds
+ {{31.5, 418}, {62, 24}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 127
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs20 \cf0 <<interface>>\
+Node}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{44.25, 450}, {36.5, 36}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 126
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Shape
+ Circle
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ VerticalPad
+ 0
+
+
+
+ Bounds
+ {{252.5, 513}, {54, 14}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 125
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 <<uses>>}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{215, 346}, {54, 14}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 124
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 <<uses>>}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{386.25, 277}, {54, 14}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 123
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 <<uses>>}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{289, 166}, {54, 14}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 122
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 <<uses>>}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 118
+
+ ID
+ 120
+ Points
+
+ {319.5296010388048, 272.20701208539185}
+ {394.47039896119531, 306.29298791460815}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ Arrow
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ Pattern
+ 1
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 98
+
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{338, 306.5}, {193, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 118
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 <<enum>>\
+TransformResult}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{338, 342.5}, {193, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 119
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
++ TransformResult SUCCESS\
++ TransformResult FAIL}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 118
+ 119
+
+
+ ID
+ 117
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 108
+
+ ID
+ 116
+ Points
+
+ {413.25, 705.99999100000002}
+ {413.44803370822137, 635.49999800241471}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ 0
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ TailArrow
+ FilledArrow
+
+
+ Tail
+
+ ID
+ 113
+ Info
+ 2
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 105
+
+ ID
+ 115
+ Points
+
+ {139.25, 711.99999100000002}
+ {139.45131578944796, 635.49999825715258}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ 0
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ TailArrow
+ FilledArrow
+
+
+ Tail
+
+ ID
+ 42
+
+
+
+ Bounds
+ {{446.75, 712}, {62, 24}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 114
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs20 \cf0 <<interface>>\
+Children}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{395, 706}, {36.5, 36}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 113
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Shape
+ Circle
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ VerticalPad
+ 0
+
+
+
+ Bounds
+ {{172.75, 718}, {62, 24}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 43
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs20 \cf0 <<interface>>\
+Attributes}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{121, 712}, {36.5, 36}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 42
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Shape
+ Circle
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ VerticalPad
+ 0
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 100
+
+ ID
+ 112
+ Points
+
+ {279.50001186443728, 272.5}
+ {279.50001186443728, 412.5}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ Arrow
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ Pattern
+ 1
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 98
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 97
+
+ ID
+ 111
+ Points
+
+ {279.50000826457716, 143.5}
+ {279.50000826457716, 199.5}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ Arrow
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ Pattern
+ 1
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 35
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 107
+
+ ID
+ 110
+ Points
+
+ {301.03872412585957, 485.32398918170145}
+ {391.96127587414048, 562.67601081829866}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ Arrow
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ Pattern
+ 1
+ TailArrow
+ Arrow
+
+
+ Tail
+
+ ID
+ 101
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 104
+
+ ID
+ 109
+ Points
+
+ {257.00701890738134, 485.31571317541813}
+ {161.99298109261875, 562.68428682458193}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ Arrow
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ Pattern
+ 1
+ TailArrow
+ Arrow
+
+
+ Tail
+
+ ID
+ 101
+
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{284, 563}, {259, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 107
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 <<inteface>>\
+EditableChildren}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{284, 599}, {259, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 108
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
++ EditableNode newChildAt(int pos)\
++ EditableNode deleteChildAt(int pos)}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 107
+ 108
+
+
+ ID
+ 106
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{10, 563}, {259, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 104
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 <<inteface>>\
+EditableAttributes}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{10, 599}, {259, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 105
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
++ EditableNode put(String k,ByteBuffer v)\
++ EditableNode delete(String k)}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 104
+ 105
+
+
+ ID
+ 103
+
+
+ Bounds
+ {{61, 513}, {72, 18}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 102
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 \'8f\'7a\'8a\'c2\'8e\'51\'8f\'c6\'82\'a0\'82\'e8}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{152, 413}, {255, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 100
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 <<inteface>>\
+EditableNode}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{152, 449}, {255, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 101
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
++ EditableAttributes getAttributes()\
++ EditableChildren getChildren()}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 100
+ 101
+
+
+ ID
+ 99
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{171, 200}, {217, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 97
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 <<inteface>>\
+Transformation}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{171, 236}, {217, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 98
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
++ EditableNode getEditableNode()\
++ TransformResult getResult()}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 97
+ 98
+
+
+ ID
+ 96
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{121, 89}, {317, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 34
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 <<interface>>\
+NodeTransformer}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{121, 125}, {317, 18}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 35
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
++ Transformation transform(EditableNode target)}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 34
+ 35
+
+
+ ID
+ 33
+
+
+ Bounds
+ {{10, 11}, {105, 14}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 95
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 NodeTransform API}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ GridInfo
+
+ GuidesLocked
+ NO
+ GuidesVisible
+ YES
+ HPages
+ 1
+ ImageCounter
+ 1
+ KeepToScale
+
+ Layers
+
+
+ Lock
+ NO
+ Name
+ レイヤー 1
+ Print
+ YES
+ View
+ YES
+
+
+ LayoutInfo
+
+ Animate
+ NO
+ circoMinDist
+ 18
+ circoSeparation
+ 0.0
+ layoutEngine
+ dot
+ neatoSeparation
+ 0.0
+ twopiSeparation
+ 0.0
+
+ LinksVisible
+ NO
+ MagnetsVisible
+ NO
+ MasterSheets
+
+ ModificationDate
+ 2012-12-10 15:30:23 +0000
+ Modifier
+ shoshi
+ NotesVisible
+ NO
+ Orientation
+ 2
+ OriginVisible
+ NO
+ PageBreaks
+ YES
+ PrintInfo
+
+ NSBottomMargin
+
+ float
+ 41
+
+ NSHorizonalPagination
+
+ coded
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG
+
+ NSLeftMargin
+
+ float
+ 18
+
+ NSPaperSize
+
+ size
+ {595, 842}
+
+ NSPrintReverseOrientation
+
+ int
+ 0
+
+ NSRightMargin
+
+ float
+ 18
+
+ NSTopMargin
+
+ float
+ 18
+
+
+ PrintOnePage
+
+ ReadOnly
+ NO
+ RowAlign
+ 1
+ RowSpacing
+ 36
+ SheetTitle
+ キャンバス 1
+ SmartAlignmentGuidesActive
+ YES
+ SmartDistanceGuidesActive
+ YES
+ UniqueID
+ 1
+ UseEntirePage
+
+ VPages
+ 1
+ WindowInfo
+
+ CurrentSheet
+ 0
+ ExpandedCanvases
+
+ Frame
+ {{-1702, 314}, {693, 922}}
+ ListView
+
+ OutlineWidth
+ 142
+ RightSidebar
+
+ ShowRuler
+
+ Sidebar
+
+ SidebarWidth
+ 120
+ VisibleRegion
+ {{0, 0}, {558, 783}}
+ Zoom
+ 1
+ ZoomValues
+
+
+ キャンバス 1
+ 1
+ 1
+
+
+
+
+
diff -r 000000000000 -r 44465893e8b8 document/node_transform_architecture.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/document/node_transform_architecture.svg Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,3 @@
+
+
+
diff -r 000000000000 -r 44465893e8b8 document/traverser_api_architecture.graffle
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/document/traverser_api_architecture.graffle Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,1999 @@
+
+
+
+
+ ActiveLayerIndex
+ 0
+ ApplicationVersion
+
+ com.omnigroup.OmniGraffle
+ 139.16.0.171715
+
+ AutoAdjust
+
+ BackgroundGraphic
+
+ Bounds
+ {{0, 0}, {559, 783}}
+ Class
+ SolidGraphic
+ ID
+ 2
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+
+ BaseZoom
+ 0
+ CanvasOrigin
+ {0, 0}
+ ColumnAlign
+ 1
+ ColumnSpacing
+ 36
+ CreationDate
+ 2012-12-10 11:11:43 +0000
+ Creator
+ shoshi
+ DisplayScale
+ 1 0/72 in = 1 0/72 in
+ GraphDocumentVersion
+ 8
+ GraphicsList
+
+
+ Bounds
+ {{284.75, 136.25000000000006}, {71, 14}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 104
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 <<extends>>}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{382.75, 639}, {71, 14}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 103
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 <<extends>>}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{284.75, 560.125}, {48, 14}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 102
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 <<use>>}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{284.75, 442.25}, {48, 14}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 101
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 <<use>>}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 67
+
+ ID
+ 100
+ Points
+
+ {273.01271064717207, 530.68742818315377}
+ {273.98728935282793, 588.18757181684623}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ Arrow
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ Pattern
+ 1
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 65
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 64
+
+ ID
+ 99
+ Points
+
+ {272.75001471756116, 427.59375}
+ {272.75001471756116, 469.6875}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ Arrow
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ Pattern
+ 1
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 62
+
+
+
+ Bounds
+ {{210.75, 230.5}, {48, 14}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 98
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 <<use>>}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{280.25, 358.09375}, {48, 14}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 97
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 <<use>>}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 61
+
+ ID
+ 96
+ Points
+
+ {274.0376134121887, 339.4998750839743}
+ {273.09652724919926, 381.5938749160257}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ Arrow
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ Pattern
+ 1
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 59
+
+
+
+ Bounds
+ {{9, 16}, {73, 14}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 95
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 Traverser API}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 42
+
+ ID
+ 94
+ Points
+
+ {274.41847796176307, 164.50002953953299}
+ {275, 111.00000899999995}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 89
+
+
+
+ Bounds
+ {{305, 81}, {69, 24}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 43
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs20 \cf0 <<interface>>\
+Iterable<Node>}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{256.75, 75}, {36.5, 36}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 42
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Shape
+ Circle
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ VerticalPad
+ 0
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 58
+
+ ID
+ 91
+ Points
+
+ {274.25000858890604, 225.5}
+ {274.25000858890604, 284.5}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ 0
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ Pattern
+ 1
+ TailArrow
+ Arrow
+
+
+ Tail
+
+ ID
+ 90
+
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{126.25, 165}, {296, 30}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 89
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs20 \cf0 <<inteface>>\
+TraverseResult}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{126.25, 195}, {296, 30}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 90
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs20 \cf0 \expnd0\expndtw0\kerning0
++ Iterator<Node> itrerator()\
++ Node target()}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 89
+ 90
+
+
+ ID
+ 88
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 70
+
+ ID
+ 84
+ Points
+
+ {302.80471084639845, 633.81655985169823}
+ {467.69528915360155, 677.87094014830177}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ 0
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ TailArrow
+ FilledArrow
+
+
+ Tail
+
+ ID
+ 68
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 73
+
+ ID
+ 83
+ Points
+
+ {284.65534452587542, 633.98739885865393}
+ {342.96965547412458, 677.70010114134607}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ 0
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ TailArrow
+ FilledArrow
+
+
+ Tail
+
+ ID
+ 68
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 76
+
+ ID
+ 82
+ Points
+
+ {265.8228188208621, 634.02808327353125}
+ {218.92718117913796, 677.65941672646875}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ 0
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ TailArrow
+ FilledArrow
+
+
+ Tail
+
+ ID
+ 68
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 79
+
+ ID
+ 81
+ Points
+
+ {247.02463170015864, 633.822510199926}
+ {89.975368299841378, 677.864989800074}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ 0
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ TailArrow
+ FilledArrow
+
+
+ Tail
+
+ ID
+ 68
+
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{0.75, 678}, {124, 15}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 79
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs20 \cf0 ACCEPT_CONTINUE}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{0.75, 693}, {124, 15}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 80
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs20 \cf0 \expnd0\expndtw0\kerning0
++ ???}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 79
+ 80
+
+
+ ID
+ 78
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{148.5, 678}, {124, 15}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 76
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs20 \cf0 ACCEPT_BREAK}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{148.5, 693}, {124, 15}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 77
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs20 \cf0 \expnd0\expndtw0\kerning0
++ ???}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 76
+ 77
+
+
+ ID
+ 75
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{291.375, 678}, {124, 15}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 73
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs20 \cf0 DENY_CONTINUE}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{291.375, 693}, {124, 15}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 74
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs20 \cf0 \expnd0\expndtw0\kerning0
++ ???}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 73
+ 74
+
+
+ ID
+ 72
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{434.25, 678}, {124, 15}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 70
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs20 \cf0 DENY_BREAK}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{434.25, 693}, {124, 15}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 71
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs20 \cf0 \expnd0\expndtw0\kerning0
++ ???}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 70
+ 71
+
+
+ ID
+ 69
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{212.25, 588.6875}, {124, 30}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 67
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs20 \cf0 <<enum>>\
+EvaluationResult}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{212.25, 618.6875}, {124, 15}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 68
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs20 \cf0 \expnd0\expndtw0\kerning0
++ ???}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 67
+ 68
+
+
+ ID
+ 66
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{182.75, 470.1875}, {180, 30}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 64
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs20 \cf0 <<inteface>>\
+Evaluation}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{182.75, 500.1875}, {180, 30}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 65
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs20 \cf0 \expnd0\expndtw0\kerning0
++ EvaluationResult result()\
++ TraverseEvaluator evaluator()}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 64
+ 65
+
+
+ ID
+ 63
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{124.75, 382.09375}, {296, 30}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 61
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs20 \cf0 <<inteface>>\
+TraverseEvaluator}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{124.75, 412.09375}, {296, 15}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 62
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs20 \cf0 \expnd0\expndtw0\kerning0
++ Evaluation eval(Iterable<Node> path,Node child,int pos)}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 61
+ 62
+
+
+ ID
+ 60
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{84.5, 285}, {379.5, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 13
+
+ ID
+ 58
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 <<inteface>>\
+Traversable}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{84.5, 321}, {379.5, 18}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 13
+
+ ID
+ 59
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
++ Iterable<TraverseResult> traverse(TraverseEvaluator e)}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 58
+ 59
+
+
+ ID
+ 57
+
+
+ GridInfo
+
+ GuidesLocked
+ NO
+ GuidesVisible
+ YES
+ HPages
+ 1
+ ImageCounter
+ 1
+ KeepToScale
+
+ Layers
+
+
+ Lock
+ NO
+ Name
+ レイヤー 1
+ Print
+ YES
+ View
+ YES
+
+
+ LayoutInfo
+
+ Animate
+ NO
+ circoMinDist
+ 18
+ circoSeparation
+ 0.0
+ layoutEngine
+ dot
+ neatoSeparation
+ 0.0
+ twopiSeparation
+ 0.0
+
+ LinksVisible
+ NO
+ MagnetsVisible
+ NO
+ MasterSheets
+
+ ModificationDate
+ 2012-12-10 13:35:08 +0000
+ Modifier
+ shoshi
+ NotesVisible
+ NO
+ Orientation
+ 2
+ OriginVisible
+ NO
+ PageBreaks
+ YES
+ PrintInfo
+
+ NSBottomMargin
+
+ float
+ 41
+
+ NSHorizonalPagination
+
+ coded
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG
+
+ NSLeftMargin
+
+ float
+ 18
+
+ NSPaperSize
+
+ size
+ {595, 842}
+
+ NSPrintReverseOrientation
+
+ int
+ 0
+
+ NSRightMargin
+
+ float
+ 18
+
+ NSTopMargin
+
+ float
+ 18
+
+
+ PrintOnePage
+
+ ReadOnly
+ NO
+ RowAlign
+ 1
+ RowSpacing
+ 36
+ SheetTitle
+ キャンバス 1
+ SmartAlignmentGuidesActive
+ YES
+ SmartDistanceGuidesActive
+ YES
+ UniqueID
+ 1
+ UseEntirePage
+
+ VPages
+ 1
+ WindowInfo
+
+ CurrentSheet
+ 0
+ ExpandedCanvases
+
+ Frame
+ {{-1302, 501}, {706, 939}}
+ ListView
+
+ OutlineWidth
+ 142
+ RightSidebar
+
+ ShowRuler
+
+ Sidebar
+
+ SidebarWidth
+ 120
+ VisibleRegion
+ {{-6, -8}, {571, 800}}
+ Zoom
+ 1
+ ZoomValues
+
+
+ キャンバス 1
+ 1
+ 1
+
+
+
+
+
diff -r 000000000000 -r 44465893e8b8 document/traverser_api_architecture.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/document/traverser_api_architecture.svg Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,3 @@
+
+
+
diff -r 000000000000 -r 44465893e8b8 document/tree_store_api_b.graffle
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/document/tree_store_api_b.graffle Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,1389 @@
+
+
+
+
+ ActiveLayerIndex
+ 0
+ ApplicationVersion
+
+ com.omnigroup.OmniGraffle
+ 139.16.0.171715
+
+ AutoAdjust
+
+ BackgroundGraphic
+
+ Bounds
+ {{0, 0}, {559, 783}}
+ Class
+ SolidGraphic
+ ID
+ 2
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+
+ BaseZoom
+ 0
+ CanvasOrigin
+ {0, 0}
+ ColumnAlign
+ 1
+ ColumnSpacing
+ 36
+ CreationDate
+ 2012-12-10 11:52:27 +0000
+ Creator
+ shoshi
+ DisplayScale
+ 1 0/72 in = 1.0000 in
+ GraphDocumentVersion
+ 8
+ GraphicsList
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 61
+
+ ID
+ 72
+ Points
+
+ {329.20990925272872, 492.33892342450167}
+ {371.85932151650201, 531.66107657549833}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ Arrow
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ Pattern
+ 1
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 58
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 58
+
+ ID
+ 71
+ Points
+
+ {150.88502781235991, 531.62735921205035}
+ {186.00340193970618, 492.37264078794965}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ 0
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ Pattern
+ 1
+ TailArrow
+ Arrow
+
+
+ Tail
+
+ ID
+ 34
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 57
+
+ ID
+ 70
+ Points
+
+ {214.7861962173489, 170.20408980090042}
+ {27.375, 254}
+ {197.37204229916, 311.83894891879646}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ 0
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ Pattern
+ 1
+ TailArrow
+ Arrow
+
+
+ Tail
+
+ ID
+ 35
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 57
+
+ ID
+ 69
+ Points
+
+ {250.7499948051904, 278.5}
+ {250.7499948051904, 311.5}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ Arrow
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ Pattern
+ 1
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 55
+
+
+
+ Bounds
+ {{43.875, 656}, {82, 24}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 68
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs20 \cf0 <<interface>>\
+TraverseEvaluator}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{164.125, 656}, {77, 24}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 67
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs20 \cf0 <<interface>>\
+Iterable<Integer>}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 59
+
+ ID
+ 66
+ Points
+
+ {201.875, 613.99999100000002}
+ {166.1289581205294, 586.30622081488389}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 64
+ Info
+ 2
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 59
+
+ ID
+ 65
+ Points
+
+ {87.135666842446952, 613.68177223831776}
+ {120.29906669391403, 586.31821677435846}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 63
+ Info
+ 2
+
+
+
+ Bounds
+ {{183.625, 614}, {36.5, 36}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 64
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Shape
+ Circle
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ VerticalPad
+ 0
+
+
+
+ Bounds
+ {{68.5, 614}, {36.5, 36}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 63
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Shape
+ Circle
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ VerticalPad
+ 0
+
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{311.25, 532}, {161, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 61
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 <<inteface>>\
+Result}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{311.25, 568}, {161, 18}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 62
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
++ TreeEditor getEditor()}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 61
+ 62
+
+
+ ID
+ 60
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{25.5, 532}, {234, 18}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 34
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 NodePath}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{25.5, 550}, {234, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 59
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
++ Evaluation eval(Iterable<Node> path,Node child,int pos)}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 34
+ 59
+
+
+ ID
+ 33
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{68.25, 312}, {365, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 57
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 <<interface>>\
+TreeEditor}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{68.25, 348}, {365, 144}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 58
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
++ TraversableTree getTree()\
++ Result appendChildBehindOf(NodePath p)\
++ Result appendChildInfrontOf(NodePath p)\
++ Result deleteChild(NodePath p)\
++ Result putAttribute(NodePath p,String k,ByteBuffer v)\
++ Result deleteAttribute(NodePath p,String k)\
++ boolean success()\
++ void fail()}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 57
+ 58
+
+
+ ID
+ 56
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{153, 224}, {195.5, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 54
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 <<interface>>\
+TreeStore}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{153, 260}, {195.5, 18}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 55
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
++ TreeEditor getCurrentTree()}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 54
+ 55
+
+
+ ID
+ 53
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 50
+
+ ID
+ 52
+ Points
+
+ {337.57701026311656, 64.266620666800307}
+ {284.48068520343776, 97.733389457544291}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ 0
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ TailArrow
+ FilledArrow
+
+
+ Tail
+
+ ID
+ 45
+ Info
+ 1
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 50
+
+ ID
+ 51
+ Points
+
+ {152, 64.000008999999949}
+ {219.22628960402827, 97.775530298288515}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ 0
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ TailArrow
+ FilledArrow
+
+
+ Tail
+
+ ID
+ 42
+ Info
+ 1
+
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{77.5, 98}, {356, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 50
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 <<interface>>\
+TraversableTree}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{77.5, 134}, {356, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 35
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
++ Node getRoot()\
++ Iterable<TraverseResult> traverse(TraverseEvaluator e)}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 50
+ 35
+
+
+ ID
+ 49
+
+
+ Bounds
+ {{371.5, 34}, {62, 24}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 46
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs20 \cf0 <<interface>>\
+Tree}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{319.75, 28}, {36.5, 36}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 45
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Shape
+ Circle
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ VerticalPad
+ 0
+
+
+
+ Bounds
+ {{185.5, 34}, {62, 24}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 43
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs20 \cf0 <<interface>>\
+Traversable}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{133.75, 28}, {36.5, 36}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 42
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Shape
+ Circle
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ VerticalPad
+ 0
+
+
+
+ Bounds
+ {{10, 14}, {95, 14}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 3
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 TreeStore API "B"}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ GridInfo
+
+ GuidesLocked
+ NO
+ GuidesVisible
+ YES
+ HPages
+ 1
+ ImageCounter
+ 1
+ KeepToScale
+
+ Layers
+
+
+ Lock
+ NO
+ Name
+ レイヤー 1
+ Print
+ YES
+ View
+ YES
+
+
+ LayoutInfo
+
+ Animate
+ NO
+ circoMinDist
+ 18
+ circoSeparation
+ 0.0
+ layoutEngine
+ dot
+ neatoSeparation
+ 0.0
+ twopiSeparation
+ 0.0
+
+ LinksVisible
+ NO
+ MagnetsVisible
+ NO
+ MasterSheets
+
+ ModificationDate
+ 2012-12-11 08:44:26 +0000
+ Modifier
+ shoshi
+ NotesVisible
+ NO
+ Orientation
+ 2
+ OriginVisible
+ NO
+ PageBreaks
+ YES
+ PrintInfo
+
+ NSBottomMargin
+
+ float
+ 41
+
+ NSHorizonalPagination
+
+ coded
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG
+
+ NSLeftMargin
+
+ float
+ 18
+
+ NSPaperSize
+
+ size
+ {595, 842}
+
+ NSPrintReverseOrientation
+
+ int
+ 0
+
+ NSRightMargin
+
+ float
+ 18
+
+ NSTopMargin
+
+ float
+ 18
+
+
+ PrintOnePage
+
+ ReadOnly
+ NO
+ RowAlign
+ 1
+ RowSpacing
+ 36
+ SheetTitle
+ キャンバス 1
+ SmartAlignmentGuidesActive
+ YES
+ SmartDistanceGuidesActive
+ YES
+ UniqueID
+ 1
+ UseEntirePage
+
+ VPages
+ 1
+ WindowInfo
+
+ CurrentSheet
+ 0
+ ExpandedCanvases
+
+ Frame
+ {{-1461, 413}, {693, 922}}
+ ListView
+
+ OutlineWidth
+ 142
+ RightSidebar
+
+ ShowRuler
+
+ Sidebar
+
+ SidebarWidth
+ 120
+ VisibleRegion
+ {{0, 0}, {558, 783}}
+ Zoom
+ 1
+ ZoomValues
+
+
+ キャンバス 1
+ 1
+ 1
+
+
+
+
+
diff -r 000000000000 -r 44465893e8b8 document/tree_store_api_b.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/document/tree_store_api_b.svg Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,3 @@
+
+
+
diff -r 000000000000 -r 44465893e8b8 document/tree_store_api_type_a.graffle
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/document/tree_store_api_type_a.graffle Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,1384 @@
+
+
+
+
+ ActiveLayerIndex
+ 0
+ ApplicationVersion
+
+ com.omnigroup.OmniGraffle
+ 139.16.0.171715
+
+ AutoAdjust
+
+ BackgroundGraphic
+
+ Bounds
+ {{0, 0}, {559, 783}}
+ Class
+ SolidGraphic
+ ID
+ 2
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+
+ BaseZoom
+ 0
+ CanvasOrigin
+ {0, 0}
+ ColumnAlign
+ 1
+ ColumnSpacing
+ 36
+ CreationDate
+ 2012-12-10 13:30:22 +0000
+ Creator
+ shoshi
+ DisplayScale
+ 1 0/72 in = 1.0000 in
+ GraphDocumentVersion
+ 8
+ GraphicsList
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 80
+
+ ID
+ 82
+ Points
+
+ {304.34595495094356, 509.36099409918046}
+ {401.75, 610.99999100000002}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 58
+
+
+
+ Bounds
+ {{363.5, 653}, {78, 24}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 81
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs20 \cf0 <<interface>>\
+NodeTransformer}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{383.5, 611}, {36.5, 36}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 80
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Shape
+ Circle
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ VerticalPad
+ 0
+
+
+
+ Bounds
+ {{53.375, 716.5}, {82, 24}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 68
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs20 \cf0 <<interface>>\
+TraverseEvaluator}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{173.625, 716.5}, {77, 24}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 67
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs20 \cf0 <<interface>>\
+Iterable<Integer>}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 58
+
+ ID
+ 71
+ Points
+
+ {161.03305272955481, 585.39022296759765}
+ {234.4094828370566, 509.35977724764678}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ 0
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ Pattern
+ 1
+ TailArrow
+ FilledArrow
+
+
+ Tail
+
+ ID
+ 34
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 57
+
+ ID
+ 70
+ Points
+
+ {235.80100933867519, 193.73798381002658}
+ {45, 297}
+ {235.93772800235965, 400.76125976074781}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ 0
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ Pattern
+ 1
+ TailArrow
+ Arrow
+
+
+ Tail
+
+ ID
+ 35
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 57
+
+ ID
+ 69
+ Points
+
+ {269.49999174219897, 324.75}
+ {269.49999174219897, 400.5}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ Arrow
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ Pattern
+ 1
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 55
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 59
+
+ ID
+ 66
+ Points
+
+ {206.625, 664.24999100000002}
+ {175.52992651577071, 640.0570327716415}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 64
+ Info
+ 2
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 59
+
+ ID
+ 65
+ Points
+
+ {94.528010424639959, 663.9540438825901}
+ {127.08522135341524, 640.0459458876345}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 63
+ Info
+ 2
+
+
+
+ Bounds
+ {{188.375, 664.25}, {36.5, 36}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 64
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Shape
+ Circle
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ VerticalPad
+ 0
+
+
+
+ Bounds
+ {{75.875, 664.25}, {36.5, 36}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 63
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Shape
+ Circle
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ VerticalPad
+ 0
+
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{35, 585.75}, {234, 18}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 34
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 NodePath}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{35, 603.75}, {234, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 59
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
++ Evaluation eval(Iterable<Node> path,Node child,int pos)}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 34
+ 59
+
+
+ ID
+ 33
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{87, 401}, {365, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 57
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 <<interface>>\
+TreeEditor}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{87, 437}, {365, 72}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 58
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
++ TraversableTree getTree()\
++ TreeEditor edit(NodePath p,NodeTransformer t)\
++ boolean success()\
++ void fail()}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 57
+ 58
+
+
+ ID
+ 56
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{171.75, 270.25}, {195.5, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 54
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 <<interface>>\
+TreeStore}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{171.75, 306.25}, {195.5, 18}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 55
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
++ TreeEditor getCurrentTree()}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 54
+ 55
+
+
+ ID
+ 53
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 50
+
+ ID
+ 52
+ Points
+
+ {351.57701026311662, 87.766620666800279}
+ {298.48068520343776, 121.23338945754429}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ 0
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ TailArrow
+ FilledArrow
+
+
+ Tail
+
+ ID
+ 45
+ Info
+ 1
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 50
+
+ ID
+ 51
+ Points
+
+ {166, 87.500008999999949}
+ {233.22628960402827, 121.27553029828852}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ 0
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ TailArrow
+ FilledArrow
+
+
+ Tail
+
+ ID
+ 42
+ Info
+ 1
+
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{91.5, 121.5}, {356, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 50
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 <<interface>>\
+TraversableTree}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{91.5, 157.5}, {356, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 35
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
++ Node getRoot()\
++ Iterable<TraverseResult> traverse(TraverseEvaluator e)}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 50
+ 35
+
+
+ ID
+ 49
+
+
+ Bounds
+ {{385.5, 57.5}, {62, 24}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 46
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs20 \cf0 <<interface>>\
+Tree}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{333.75, 51.5}, {36.5, 36}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 45
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Shape
+ Circle
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ VerticalPad
+ 0
+
+
+
+ Bounds
+ {{199.5, 57.5}, {62, 24}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 43
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs20 \cf0 <<interface>>\
+Traversable}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{147.75, 51.5}, {36.5, 36}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Font
+ HiraKakuProN-W6
+ Size
+ 11
+
+ ID
+ 42
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Shape
+ Circle
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+
+ Text
+
+ VerticalPad
+ 0
+
+
+
+ Bounds
+ {{15, 16}, {95, 14}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 3
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 TreeStore API "A"}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ GridInfo
+
+ GuidesLocked
+ NO
+ GuidesVisible
+ YES
+ HPages
+ 1
+ ImageCounter
+ 1
+ KeepToScale
+
+ Layers
+
+
+ Lock
+ NO
+ Name
+ レイヤー 1
+ Print
+ YES
+ View
+ YES
+
+
+ LayoutInfo
+
+ Animate
+ NO
+ circoMinDist
+ 18
+ circoSeparation
+ 0.0
+ layoutEngine
+ dot
+ neatoSeparation
+ 0.0
+ twopiSeparation
+ 0.0
+
+ LinksVisible
+ NO
+ MagnetsVisible
+ NO
+ MasterSheets
+
+ ModificationDate
+ 2012-12-11 08:46:02 +0000
+ Modifier
+ shoshi
+ NotesVisible
+ NO
+ Orientation
+ 2
+ OriginVisible
+ NO
+ PageBreaks
+ YES
+ PrintInfo
+
+ NSBottomMargin
+
+ float
+ 41
+
+ NSHorizonalPagination
+
+ coded
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG
+
+ NSLeftMargin
+
+ float
+ 18
+
+ NSPaperSize
+
+ size
+ {595, 842}
+
+ NSPrintReverseOrientation
+
+ int
+ 0
+
+ NSRightMargin
+
+ float
+ 18
+
+ NSTopMargin
+
+ float
+ 18
+
+
+ PrintOnePage
+
+ ReadOnly
+ NO
+ RowAlign
+ 1
+ RowSpacing
+ 36
+ SheetTitle
+ キャンバス 1
+ SmartAlignmentGuidesActive
+ YES
+ SmartDistanceGuidesActive
+ YES
+ UniqueID
+ 1
+ UseEntirePage
+
+ VPages
+ 1
+ WindowInfo
+
+ CurrentSheet
+ 0
+ ExpandedCanvases
+
+ Frame
+ {{-1364, 479}, {693, 922}}
+ ListView
+
+ OutlineWidth
+ 142
+ RightSidebar
+
+ ShowRuler
+
+ Sidebar
+
+ SidebarWidth
+ 120
+ VisibleRegion
+ {{0, 0}, {558, 783}}
+ Zoom
+ 1
+ ZoomValues
+
+
+ キャンバス 1
+ 1
+ 1
+
+
+
+
+
diff -r 000000000000 -r 44465893e8b8 document/tree_store_api_type_a.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/document/tree_store_api_type_a.svg Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,3 @@
+
+
+
diff -r 000000000000 -r 44465893e8b8 document/version_control_api.graffle
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/document/version_control_api.graffle Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,1224 @@
+
+
+
+
+ ActiveLayerIndex
+ 0
+ ApplicationVersion
+
+ com.omnigroup.OmniGraffle
+ 139.16.0.171715
+
+ AutoAdjust
+
+ BackgroundGraphic
+
+ Bounds
+ {{0, 0}, {559, 783}}
+ Class
+ SolidGraphic
+ ID
+ 2
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+
+ BaseZoom
+ 0
+ CanvasOrigin
+ {0, 0}
+ ColumnAlign
+ 1
+ ColumnSpacing
+ 36
+ CreationDate
+ 2012-12-10 14:12:27 +0000
+ Creator
+ shoshi
+ DisplayScale
+ 1 0/72 in = 1 0/72 in
+ GraphDocumentVersion
+ 8
+ GraphicsList
+
+
+ Bounds
+ {{297, 639.25}, {54, 14}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 67
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 <<uses>>}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{292, 532.75}, {54, 14}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 66
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 <<uses>>}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 61
+
+ ID
+ 65
+ Points
+
+ {279.49998867250389, 620.5}
+ {279.49998867250389, 665.5}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ Arrow
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ Pattern
+ 1
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 59
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 58
+
+ ID
+ 64
+ Points
+
+ {279.5000141916604, 514}
+ {279.5000141916604, 565.5}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ Arrow
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ Pattern
+ 1
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 41
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 35
+
+ ID
+ 63
+ Points
+
+ {279.49998069032409, 459}
+ {279.49998069032409, 160.5}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ Pattern
+ 1
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 40
+
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{167.25, 666}, {224.5, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 61
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 <<enum>>\
+MergeResult.Status}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{167.25, 702}, {224.5, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 62
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
++ MergeResult.Status SUCCESS\
++ MergeResult.Status CONFLICT}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 61
+ 62
+
+
+ ID
+ 60
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{146.5, 566}, {266, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 58
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 <<inteface>>\
+MergeResult}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{146.5, 602}, {266, 18}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 59
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
++ MergeResult.Status getStatus()}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 58
+ 59
+
+
+ ID
+ 57
+
+
+ Bounds
+ {{167.25, 429}, {54, 14}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 56
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 <<uses>>}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 49
+
+ ID
+ 54
+ Points
+
+ {267.44511071737571, 459.08164128769772}
+ {142.16435336472233, 267.66835871230228}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ Pattern
+ 1
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 40
+
+
+
+ Bounds
+ {{395, 201}, {54, 14}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 53
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 <<uses>>}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 37
+
+ ID
+ 52
+ Points
+
+ {323.25495102031016, 160.35986235117099}
+ {391.28974171712002, 230.89013764882901}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ Pattern
+ 1
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 35
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 48
+
+ ID
+ 51
+ Points
+
+ {227.55150227594322, 160.32873362648911}
+ {146.65053390666884, 230.92054293761089}
+
+ Style
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ HeadScale
+ 1.0142860412597656
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 35
+
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{34, 231.25}, {204, 18}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 48
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 TipChangeSet}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{34, 249.25}, {204, 18}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 49
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
++ TreeEditor getEditor()}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 48
+ 49
+
+
+ ID
+ 47
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{87.5, 459.5}, {384, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 40
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 <<inteface>>\
+Merger}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{87.5, 495.5}, {384, 18}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 41
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
++ MergeResult merge(TipChangeSet local,ChangeSet remote)}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 40
+ 41
+
+
+ ID
+ 39
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{297, 231.25}, {224, 36}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 37
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 <<enum>>\
+Command}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{297, 267.25}, {224, 84}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 46
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural
+
+\f0\fs24 \cf0 + Command APPEND_CHILD\
++ Command DELETE_CHILD\
++ Command PUT_ATTRIBUTE\
++ Command DELETE_ATTRIBUTE\
+\
++ NodePath getPath()}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 37
+ 46
+
+
+ ID
+ 36
+
+
+ Class
+ TableGroup
+ Graphics
+
+
+ Bounds
+ {{153.5, 52}, {252, 18}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 34
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 ChangeSet}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{153.5, 70}, {252, 90}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 35
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ GradientCenter
+ {-0.29411799999999999, -0.264706}
+
+
+ Text
+
+ Align
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri-380
+
+\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
++ Tree getTree()\
++ ChangeSet previous()\
++ String ownerid()\
++ long revision()\
++ Iterable<Command> getCommands()}
+ VerticalPad
+ 0
+
+ TextPlacement
+ 0
+
+
+ GridH
+
+ 34
+ 35
+
+
+ ID
+ 33
+
+
+ Bounds
+ {{11, 11}, {131, 28}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 3
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 Version Control & Merge\
+API}
+ VerticalPad
+ 0
+
+ Wrap
+ NO
+
+
+ GridInfo
+
+ GuidesLocked
+ NO
+ GuidesVisible
+ YES
+ HPages
+ 1
+ ImageCounter
+ 1
+ KeepToScale
+
+ Layers
+
+
+ Lock
+ NO
+ Name
+ レイヤー 1
+ Print
+ YES
+ View
+ YES
+
+
+ LayoutInfo
+
+ Animate
+ NO
+ circoMinDist
+ 18
+ circoSeparation
+ 0.0
+ layoutEngine
+ dot
+ neatoSeparation
+ 0.0
+ twopiSeparation
+ 0.0
+
+ LinksVisible
+ NO
+ MagnetsVisible
+ NO
+ MasterSheets
+
+ ModificationDate
+ 2012-12-10 15:05:11 +0000
+ Modifier
+ shoshi
+ NotesVisible
+ NO
+ Orientation
+ 2
+ OriginVisible
+ NO
+ PageBreaks
+ YES
+ PrintInfo
+
+ NSBottomMargin
+
+ float
+ 41
+
+ NSHorizonalPagination
+
+ coded
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG
+
+ NSLeftMargin
+
+ float
+ 18
+
+ NSPaperSize
+
+ size
+ {595, 842}
+
+ NSPrintReverseOrientation
+
+ int
+ 0
+
+ NSRightMargin
+
+ float
+ 18
+
+ NSTopMargin
+
+ float
+ 18
+
+
+ PrintOnePage
+
+ ReadOnly
+ NO
+ RowAlign
+ 1
+ RowSpacing
+ 36
+ SheetTitle
+ キャンバス 1
+ SmartAlignmentGuidesActive
+ YES
+ SmartDistanceGuidesActive
+ YES
+ UniqueID
+ 1
+ UseEntirePage
+
+ VPages
+ 1
+ WindowInfo
+
+ CurrentSheet
+ 0
+ ExpandedCanvases
+
+ Frame
+ {{-2394, 90}, {693, 922}}
+ ListView
+
+ OutlineWidth
+ 142
+ RightSidebar
+
+ ShowRuler
+
+ Sidebar
+
+ SidebarWidth
+ 120
+ VisibleRegion
+ {{0, 0}, {558, 783}}
+ Zoom
+ 1
+ ZoomValues
+
+
+ キャンバス 1
+ 1
+ 1
+
+
+
+
+
diff -r 000000000000 -r 44465893e8b8 document/version_control_api.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/document/version_control_api.svg Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,3 @@
+
+
+
diff -r 000000000000 -r 44465893e8b8 jungle-core.iml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jungle-core.iml Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff -r 000000000000 -r 44465893e8b8 pom.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/pom.xml Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,58 @@
+
+ 4.0.0
+
+ jungle
+ jungle-core
+ 0.0.3-SNAPSHOT
+ jar
+
+ jungle-core
+ http://maven.apache.org
+
+
+ UTF-8
+
+
+
+
+ junit
+ junit
+ 4.7
+ test
+
+
+ com.google.guava
+ guava
+ 12.0
+
+
+ commons-collections
+ commons-collections
+ 3.2.1
+
+
+ org.functionaljava
+ functionaljava
+ 4.2-beta-1
+
+
+
+ org.apache.maven.surefire
+ surefire-junit4
+ 2.13
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+ 1.8
+
+
+
+
+
diff -r 000000000000 -r 44465893e8b8 src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/DefaultJungle.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/DefaultJungle.java Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,92 @@
+package jp.ac.u_ryukyu.ie.cr.jungle;
+
+
+import jp.ac.u_ryukyu.ie.cr.jungle.persistent.Journal;
+import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.logger.DefaultTreeOperationLog;
+import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.logger.TreeOperationLog;
+import jp.ac.u_ryukyu.ie.cr.jungle.traverser.DefaultTraverser;
+import jp.ac.u_ryukyu.ie.cr.jungle.data.list.List;
+import jp.ac.u_ryukyu.ie.cr.jungle.persistent.ChangeList;
+import jp.ac.u_ryukyu.ie.cr.jungle.persistent.NullJournal;
+import jp.ac.u_ryukyu.ie.cr.jungle.store.TreeContext;
+import jp.ac.u_ryukyu.ie.cr.jungle.store.TreeEditor;
+import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.DefaultNodePath;
+import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.DefaultTreeEditor;
+import jp.ac.u_ryukyu.ie.cr.jungle.store.operations.TreeOperation;
+import jp.ac.u_ryukyu.ie.cr.jungle.transaction.DefaultTreeContext;
+import jp.ac.u_ryukyu.ie.cr.jungle.transaction.DefaultTreeNode;
+import jp.ac.u_ryukyu.ie.cr.jungle.traverser.InterfaceTraverser;
+import jp.ac.u_ryukyu.ie.cr.jungle.util.Either;
+import jp.ac.u_ryukyu.ie.cr.jungle.util.Error;
+
+import java.util.Iterator;
+import java.util.concurrent.ConcurrentHashMap;
+
+public class DefaultJungle implements Jungle {
+ private Journal journal;
+ private ConcurrentHashMap trees;
+ private String uuid;
+ private TreeEditor editor;
+
+ public static void main(String args[]) {
+ DefaultJungle j = new DefaultJungle(null, "hoge", new DefaultTreeEditor(new DefaultTraverser()));
+ JungleTree t = j.createNewTree("fuga");
+
+ JungleTreeEditor e1 = t.getTreeEditor();
+
+ DefaultNodePath root = new DefaultNodePath();
+
+ Either either = e1.addNewChildAt(root, 0);
+ e1 = either.b();
+ either = e1.addNewChildAt(root.add(0), 0);
+ e1 = either.b();
+ e1.success();
+ }
+
+ public DefaultJungle(Journal journal, String uuid, TreeEditor editor) {
+ this.journal = new NullJournal();
+ this.trees = new ConcurrentHashMap();
+ this.uuid = uuid;
+ this.editor = editor;
+ }
+
+ @Override
+ public JungleTree getTreeByName(String name) {
+ return trees.get(name);
+ }
+
+ @Override
+ public JungleTree createNewTree(final String name) {
+ ChangeList list = new ChangeList() {
+ @Override
+ public Iterator iterator() {
+ List nil = new List<>();
+ return nil.iterator();
+ }
+
+ @Override
+ public String uuid() {
+ return uuid;
+ }
+
+ @Override
+ public String getTreeName() {
+ return name;
+ }
+
+ @Override
+ public TreeOperationLog getLog() {
+ return new DefaultTreeOperationLog();
+ }
+
+ };
+ DefaultTreeNode root = new DefaultTreeNode();
+ InterfaceTraverser traverser = new InterfaceTraverser(root, true);
+ TreeContext tc = new DefaultTreeContext(root, null, list, uuid, name, 0, traverser);
+ JungleTree newTree = new DefaultJungleTree(tc, uuid, journal.getWriter(), editor);
+ if (trees.putIfAbsent(name, newTree) != null) {
+ return null;
+ }
+ return newTree;
+ }
+}
diff -r 000000000000 -r 44465893e8b8 src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/DefaultJungleTree.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/DefaultJungleTree.java Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,113 @@
+package jp.ac.u_ryukyu.ie.cr.jungle;
+
+import jp.ac.u_ryukyu.ie.cr.jungle.store.NodePath;
+import jp.ac.u_ryukyu.ie.cr.jungle.util.Error;
+import jp.ac.u_ryukyu.ie.cr.jungle.data.list.List;
+import jp.ac.u_ryukyu.ie.cr.jungle.persistent.ChangeListWriter;
+import jp.ac.u_ryukyu.ie.cr.jungle.store.TreeContext;
+import jp.ac.u_ryukyu.ie.cr.jungle.store.TreeEditor;
+import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.TreeNode;
+import jp.ac.u_ryukyu.ie.cr.jungle.transaction.DefaultJungleTreeEditor;
+import jp.ac.u_ryukyu.ie.cr.jungle.transaction.DefaultTransactionManager;
+import jp.ac.u_ryukyu.ie.cr.jungle.traverser.InterfaceTraverser;
+import jp.ac.u_ryukyu.ie.cr.jungle.util.DefaultEither;
+import jp.ac.u_ryukyu.ie.cr.jungle.util.Either;
+import jp.ac.u_ryukyu.ie.cr.jungle.util.GetOldTreeError;
+import jp.ac.u_ryukyu.ie.cr.jungle.store.index.ParentIndex;
+import jp.ac.u_ryukyu.ie.cr.jungle.data.treemap.TreeMap;
+
+import java.util.concurrent.atomic.AtomicReference;
+
+public class DefaultJungleTree implements JungleTree {
+
+ private final AtomicReference repository;
+ private final String uuid;
+ private final ChangeListWriter writer;
+ private final TreeEditor treeEditor;
+
+ public DefaultJungleTree(TreeContext tc, String uuid, ChangeListWriter writer, TreeEditor editor) {
+ this.repository = new AtomicReference(tc);
+ this.uuid = uuid;
+ this.writer = writer;
+ this.treeEditor = editor;
+ }
+
+ @Override
+ public JungleTreeEditor getTreeEditor() {
+ TreeContext tc = repository.get();
+ DefaultTransactionManager txManager = new DefaultTransactionManager(writer, tc, repository, uuid);
+ TreeNode root = tc.getRoot();
+ return new DefaultJungleTreeEditor(root, txManager, treeEditor);
+ }
+
+ @Override
+ public JungleTreeEditor getLocalTreeEditor() {
+ return getTreeEditor();
+ }
+
+ @Override
+ public TreeNode getRootNode() {
+ TreeContext tc = repository.get();
+ return tc.getRoot();
+ }
+
+ @Override
+ public InterfaceTraverser getTraverser(boolean useIndex) {
+ TreeContext tc = repository.get();
+ return tc.getTraverser();
+ }
+
+ @Override
+ public ParentIndex getParentIndex() {
+ TreeContext tc = repository.get();
+ return tc.getParentIndex();
+ }
+
+ @Override
+ public TreeMap>> getIndex() {
+ TreeContext tc = repository.get();
+ return tc.getIndex();
+ }
+
+ @Override
+ public long revision() {
+ TreeContext tc = repository.get();
+ return tc.revision();
+ }
+
+ @Override
+ public Either getOldTree(long revision) {
+ TreeContext tc = repository.get();
+
+ for (; tc.revision() != revision; ) {
+ tc = tc.prev();
+ if (tc == null)
+ return DefaultEither.newA(GetOldTreeError.OLD_TREE_NOT_FOUND);
+ }
+
+
+ String oldTreeUuid = uuid + revision;
+ JungleTree oldTree = new DefaultJungleTree(tc, oldTreeUuid, writer, treeEditor);
+ return DefaultEither.newB(oldTree);
+ }
+
+ @Override
+ public Either getNodeOfPath(NodePath path) {
+ TreeNode node = repository.get().getRoot();
+ for (int num : path) {
+ if (num == -1)
+ continue;
+ Either either = node.getChildren().at(num);
+ if (either.isA())
+ return either;
+ node = either.b();
+ }
+ return DefaultEither.newB(node);
+ }
+
+ @Override
+ public void setBufferSize(int _bufferSize) {
+ // not use
+ }
+
+}
diff -r 000000000000 -r 44465893e8b8 src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/Jungle.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/Jungle.java Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,8 @@
+package jp.ac.u_ryukyu.ie.cr.jungle;
+
+
+public interface Jungle
+{
+ public JungleTree getTreeByName(String name);
+ public JungleTree createNewTree(String name);
+}
diff -r 000000000000 -r 44465893e8b8 src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/JungleTree.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/JungleTree.java Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,33 @@
+package jp.ac.u_ryukyu.ie.cr.jungle;
+
+
+import jp.ac.u_ryukyu.ie.cr.jungle.data.list.List;
+import jp.ac.u_ryukyu.ie.cr.jungle.store.NodePath;
+import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.TreeNode;
+import jp.ac.u_ryukyu.ie.cr.jungle.traverser.InterfaceTraverser;
+import jp.ac.u_ryukyu.ie.cr.jungle.util.Either;
+import jp.ac.u_ryukyu.ie.cr.jungle.util.Error;
+import jp.ac.u_ryukyu.ie.cr.jungle.store.index.ParentIndex;
+import jp.ac.u_ryukyu.ie.cr.jungle.data.treemap.TreeMap;
+
+public interface JungleTree {
+ public JungleTreeEditor getTreeEditor();
+
+ public JungleTreeEditor getLocalTreeEditor();
+
+ public TreeNode getRootNode();
+
+ public long revision();
+
+ public Either getOldTree(long revision);
+
+ public TreeMap>> getIndex();
+
+ public ParentIndex getParentIndex();
+
+ public InterfaceTraverser getTraverser(boolean useIndex);
+
+ public Either getNodeOfPath(NodePath path);
+
+ public void setBufferSize(int _bufferSize);
+}
diff -r 000000000000 -r 44465893e8b8 src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/JungleTreeEditor.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/JungleTreeEditor.java Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,23 @@
+package jp.ac.u_ryukyu.ie.cr.jungle;
+
+import jp.ac.u_ryukyu.ie.cr.jungle.store.NodePath;
+import jp.ac.u_ryukyu.ie.cr.jungle.store.trasnformer.NodeEditor;
+import jp.ac.u_ryukyu.ie.cr.jungle.util.Either;
+import jp.ac.u_ryukyu.ie.cr.jungle.util.Error;
+
+import java.nio.ByteBuffer;
+
+public interface JungleTreeEditor
+{
+
+ public Either addNewChildAt(NodePath path,int pos);
+ public Either deleteChildAt(NodePath path,int pos);
+ public Either putAttribute(NodePath path,String key,ByteBuffer value);
+ public Either deleteAttribute(NodePath path,String key);
+ public Either replaceNewRootNode();
+ public Either edit(NodePath path,NodeEditor editor);
+ public Either success();
+ public Either flushSuccess();
+
+
+}
diff -r 000000000000 -r 44465893e8b8 src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/App.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/App.java Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,83 @@
+package jp.ac.u_ryukyu.ie.cr.jungle.bbs;
+
+import me.prettyprint.hector.api.HConsistencyLevel;
+import org.mortbay.jetty.Connector;
+import org.mortbay.jetty.Server;
+import org.mortbay.jetty.nio.SelectChannelConnector;
+import org.mortbay.jetty.servlet.ServletHandler;
+import org.mortbay.jetty.servlet.ServletHolder;
+import org.mortbay.thread.QueuedThreadPool;
+
+import javax.servlet.Servlet;
+
+
+/**
+ * Hello world!
+ *
+ */
+public class App
+{
+ public static void main( String[] args ) throws Exception
+ {
+ BulletinBoard cassaBBS = null;
+ if(args.length == 0){
+ cassaBBS = new JungleBulletinBoard();
+ }else{
+ HConsistencyLevel cLevel = HConsistencyLevel.QUORUM;
+ int rep_factor = 1;
+ int i=0;
+ while(i getBoards();
+ public void createBoards(String _name, String _author, String _initMessage, String _editKey);
+ public void createBoardMessage(String _board, String _author, String _message, String _editKey);
+ public void editMessage(String _board, String _uuid, String _author, String _message, String _editKey);
+ public String sanitize(String str);
+ GetAttributeImp getAttribute(String _bname, String _nodeNum, String revisionStr);
+}
diff -r 000000000000 -r 44465893e8b8 src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/CassandraBulletinBoard.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/CassandraBulletinBoard.java Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,219 @@
+package jp.ac.u_ryukyu.ie.cr.jungle.bbs;
+
+import me.prettyprint.cassandra.model.ConfigurableConsistencyLevel;
+import me.prettyprint.cassandra.serializers.StringSerializer;
+import me.prettyprint.cassandra.serializers.UUIDSerializer;
+import me.prettyprint.cassandra.service.template.SuperCfResult;
+import me.prettyprint.cassandra.service.template.SuperCfUpdater;
+import me.prettyprint.cassandra.service.template.ThriftSuperCfTemplate;
+import me.prettyprint.cassandra.utils.TimeUUIDUtils;
+import me.prettyprint.hector.api.Cluster;
+import me.prettyprint.hector.api.HConsistencyLevel;
+import me.prettyprint.hector.api.Keyspace;
+import me.prettyprint.hector.api.beans.HSuperColumn;
+import me.prettyprint.hector.api.beans.OrderedSuperRows;
+import me.prettyprint.hector.api.beans.SuperRow;
+import me.prettyprint.hector.api.beans.SuperSlice;
+import me.prettyprint.hector.api.ddl.ColumnFamilyDefinition;
+import me.prettyprint.hector.api.ddl.ColumnType;
+import me.prettyprint.hector.api.ddl.ComparatorType;
+import me.prettyprint.hector.api.ddl.KeyspaceDefinition;
+import me.prettyprint.hector.api.factory.HFactory;
+import me.prettyprint.hector.api.query.QueryResult;
+import me.prettyprint.hector.api.query.RangeSuperSlicesQuery;
+import me.prettyprint.hector.api.query.SuperSliceQuery;
+import org.apache.cassandra.locator.SimpleStrategy;
+
+import java.util.*;
+
+public class CassandraBulletinBoard implements BulletinBoard
+{
+ private final String address;
+ private final String clusterName;
+ private final Cluster cluster;
+ private final String keyspace;
+ private final ConfigurableConsistencyLevel configurableConsistencyLevel = new ConfigurableConsistencyLevel();
+
+ private static final String COLUMN_FAMILY_BOARD = "boards";
+ private final int REP_FACTOR;
+
+ public CassandraBulletinBoard(String _clusterName,String _address,String _keyspaceName, HConsistencyLevel cLevel,int rep_factor )
+ {
+ address = _address;
+ clusterName = _clusterName;
+ keyspace = _keyspaceName;
+ cluster = HFactory.getOrCreateCluster(clusterName,address);
+ Map clmap = new HashMap();
+ clmap.put(COLUMN_FAMILY_BOARD, cLevel);
+ configurableConsistencyLevel.setReadCfConsistencyLevels(clmap);
+ configurableConsistencyLevel.setWriteCfConsistencyLevels(clmap);
+ REP_FACTOR = rep_factor;
+ initialize();
+ }
+
+ public CassandraBulletinBoard(String _clusterName,String _address,String _keyspaceName, HConsistencyLevel cLevel)
+ {
+ this(_clusterName, _address, _keyspaceName, cLevel, 1);
+ }
+
+
+
+ private void initialize()
+ {
+ if(cluster.describeKeyspace(keyspace) == null){
+ KeyspaceDefinition keyspaceDefinition = HFactory.createKeyspaceDefinition(keyspace,
+ SimpleStrategy.class.getName(),REP_FACTOR,Collections. emptyList());
+ cluster.addKeyspace(keyspaceDefinition,false);
+ ColumnFamilyDefinition columnFamilyDefinition = HFactory.createColumnFamilyDefinition(keyspace,COLUMN_FAMILY_BOARD,ComparatorType.UUIDTYPE);
+ columnFamilyDefinition.setColumnType(ColumnType.SUPER);
+ cluster.addColumnFamily(columnFamilyDefinition);
+ }
+ }
+
+ public Iterable getBoards()
+ {
+ Keyspace ksp = HFactory.createKeyspace(keyspace, cluster, configurableConsistencyLevel);
+ RangeSuperSlicesQuery query = HFactory.createRangeSuperSlicesQuery(ksp,StringSerializer.get(),
+ UUIDSerializer.get(),StringSerializer.get(),StringSerializer.get());
+ query.setColumnFamily(COLUMN_FAMILY_BOARD).setKeys(null,null).setRange(null,null,false,0);
+
+ QueryResult> result = query.execute();
+ OrderedSuperRows rows = result.get();
+ List> list = rows.getList();
+
+ IterableConverter.Converter> converter
+ = new IterableConverter.Converter>(){
+ public String conv(SuperRow _b) {
+ return _b.getKey();
+ }
+ };
+
+ return new IterableConverter>(list,converter);
+ }
+
+ private static final String COLUMN_MESSAGE_AUTHOR = "author";
+ private static final String COLUMN_MESSAGE_BODY = "message";
+ private static final String COLUMN_MESSAGE_EDIT_KEY = "edit";
+
+ public void createBoardMessage(UUID _time,String _name,String _author,String _message,String _editKey)
+ {
+ Keyspace ksp = HFactory.createKeyspace(keyspace, cluster, configurableConsistencyLevel);
+ ThriftSuperCfTemplate template =
+ new ThriftSuperCfTemplate(ksp,COLUMN_FAMILY_BOARD,StringSerializer.get(),
+ UUIDSerializer.get(),StringSerializer.get());
+
+ SuperCfUpdater updater = template.createUpdater(_name,_time);
+ updater.setString(COLUMN_MESSAGE_AUTHOR,_author);
+ updater.setString(COLUMN_MESSAGE_BODY,_message);
+ updater.setString(COLUMN_MESSAGE_EDIT_KEY,_editKey);
+
+ template.update(updater);
+ }
+
+ public void createBoards(String _name,String _author,String _initMessage,String _editKey)
+ {
+ UUID time = TimeUUIDUtils.getTimeUUID(0);
+ createBoardMessage(time,_name,_author,_initMessage,_editKey);
+ }
+
+ public Iterable getMessages(String _boardName)
+ {
+ Keyspace ksp = HFactory.createKeyspace(keyspace, cluster, configurableConsistencyLevel);
+ SuperSliceQuery query = HFactory.createSuperSliceQuery(ksp, StringSerializer.get(), UUIDSerializer.get(), StringSerializer.get(), StringSerializer.get());
+
+ UUID start = TimeUUIDUtils.getTimeUUID(0);
+ query.setKey(_boardName).setColumnFamily(COLUMN_FAMILY_BOARD).setRange(start,null,false,100);
+
+ QueryResult> result = query.execute();
+ SuperSlice ss = result.get();
+ List> list = ss.getSuperColumns();
+
+ IterableConverter.Converter> converter =
+ new IterableConverter.Converter>(){
+ public BoardMessage conv(HSuperColumn _b){
+ UUID uuid = _b.getName();
+ String author = _b.getSubColumnByName(COLUMN_MESSAGE_AUTHOR).getValue();
+ String message = _b.getSubColumnByName(COLUMN_MESSAGE_BODY).getValue();
+ BoardMessageImpl bm = new BoardMessageImpl(author,message,uuid.toString());
+ return bm;
+ }
+ };
+
+
+ return new IterableConverter>(list,converter);
+ }
+
+ private static class BoardMessageImpl implements BoardMessage
+ {
+ private final String author;
+ private final String message;
+ private final String uuid;
+
+ public BoardMessageImpl(String _author,String _message,String _uuid)
+ {
+ author = _author;
+ message = _message;
+ uuid = _uuid;
+ }
+
+ public String getAuthor()
+ {
+ return author;
+ }
+
+ public String getMessage()
+ {
+ return message;
+ }
+
+ public String getUUID()
+ {
+ return uuid;
+ }
+ }
+
+ public void createBoardMessage(String _board, String _author, String _message,String _editKey)
+ {
+ UUID time = TimeUUIDUtils.getUniqueTimeUUIDinMillis();
+ createBoardMessage(time,_board,_author,_message,_editKey);
+ }
+
+ public void editMessage(String _board,String _uuid,String _author,String _message,String _editKey)
+ {
+ Keyspace ksp = HFactory.createKeyspace(keyspace, cluster, configurableConsistencyLevel);
+ UUID time = UUID.fromString(_uuid);
+ ThriftSuperCfTemplate template =
+ new ThriftSuperCfTemplate(ksp,COLUMN_FAMILY_BOARD,StringSerializer.get(),
+ UUIDSerializer.get(),StringSerializer.get());
+
+ SuperCfResult result = template.querySuperColumn(_board,time);
+ String editKey = result.getString(COLUMN_MESSAGE_EDIT_KEY);
+ if(!editKey.equals(editKey)){
+ return;
+ }
+
+ SuperCfUpdater updater = template.createUpdater(_board,time);
+ updater.setString(COLUMN_MESSAGE_AUTHOR,_author);
+ updater.setString(COLUMN_MESSAGE_BODY,_message);
+ updater.setString(COLUMN_MESSAGE_EDIT_KEY,_editKey);
+
+ template.update(updater);
+ }
+
+ public String sanitize( String str ) {
+ if(str==null) {
+ return str;
+ }
+ str = str.replaceAll("&" , "&" );
+ str = str.replaceAll("<" , "<" );
+ str = str.replaceAll(">" , ">" );
+ str = str.replaceAll("\"", """);
+ str = str.replaceAll("'" , "'" );
+ return str;
+ }
+
+ public GetAttributeImp getAttribute(String _bname, String _nodeNum, String revisionStr) {
+ return null; // 未実装 使うときに実装する
+ }
+
+}
diff -r 000000000000 -r 44465893e8b8 src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/CreateBoardMessageServlet.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/CreateBoardMessageServlet.java Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,39 @@
+package jp.ac.u_ryukyu.ie.cr.jungle.bbs;
+
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.PrintWriter;
+
+public class CreateBoardMessageServlet extends HttpServlet
+{
+ private final BulletinBoard bbs;
+ private static final String PARAM_BOARD_NAME = "bname";
+ private static final String PARAM_BOARD_AUTHOR = "author";
+ private static final String PARAM_BOARD_MESSAGE= "msg";
+ private static final String PARAM_BOARD_EDITKEY = "key";
+
+ private static final long serialVersionUID = 1L;
+
+ public CreateBoardMessageServlet(BulletinBoard _bbs)
+ {
+ bbs = _bbs;
+ }
+
+ @Override
+ public void doPost(HttpServletRequest _req,HttpServletResponse _res)
+ {
+ String boardName = _req.getParameter(PARAM_BOARD_NAME);
+ String author = _req.getParameter(PARAM_BOARD_AUTHOR);
+ String msg = _req.getParameter(PARAM_BOARD_MESSAGE);
+ String key = _req.getParameter(PARAM_BOARD_EDITKEY);
+
+ try{
+ bbs.createBoardMessage(boardName,author,msg,key);
+ PrintWriter pw = _res.getWriter();
+ pw.write("successfully written");
+ }catch(Exception _e){
+ _res.setStatus(500);
+ }
+ }
+}
diff -r 000000000000 -r 44465893e8b8 src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/CreateBoardServlet.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/CreateBoardServlet.java Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,40 @@
+package jp.ac.u_ryukyu.ie.cr.jungle.bbs;
+
+import org.apache.commons.lang.StringEscapeUtils;
+
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.PrintWriter;
+
+public class CreateBoardServlet extends HttpServlet
+{
+ private final BulletinBoard bbs;
+ private static final String PARAM_BOARD_NAME = "bname";
+ private static final String PARAM_BOARD_AUTHOR = "author";
+ private static final String PARAM_BOARD_INITMESSAGE= "msg";
+ private static final String PARAM_BOARD_EDITKEY = "key";
+
+ private static final long serialVersionUID = 1L;
+
+ public CreateBoardServlet(BulletinBoard _bbs)
+ {
+ bbs = _bbs;
+ }
+
+ public void doPost(HttpServletRequest _req,HttpServletResponse _res)
+ {
+ String boardName = StringEscapeUtils.unescapeHtml(_req.getParameter(PARAM_BOARD_NAME));
+ String author = StringEscapeUtils.unescapeHtml(_req.getParameter(PARAM_BOARD_AUTHOR));
+ String msg = StringEscapeUtils.unescapeHtml(_req.getParameter(PARAM_BOARD_INITMESSAGE));
+ String key = StringEscapeUtils.unescapeHtml(_req.getParameter(PARAM_BOARD_EDITKEY));
+
+ try{
+ bbs.createBoards(boardName,author,msg,key);
+ PrintWriter pw = _res.getWriter();
+ pw.write("successfully written");
+ }catch(Exception _e){
+ _res.setStatus(500);
+ }
+ }
+}
diff -r 000000000000 -r 44465893e8b8 src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/EditMessageServlet.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/EditMessageServlet.java Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,63 @@
+package jp.ac.u_ryukyu.ie.cr.jungle.bbs;
+
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.PrintWriter;
+
+public class EditMessageServlet extends HttpServlet
+{
+ private final BulletinBoard bbs;
+ private static final String PARAM_BOARD_NAME = "bname";
+ private static final String PARAM_BOARD_MSGID = "uuid";
+ private static final String PARAM_BOARD_AUTHOR = "author";
+ private static final String PARAM_BOARD_MESSAGE= "msg";
+ private static final String PARAM_BOARD_EDITKEY = "key";
+
+ private static final long serialVersionUID = 1L;
+
+ public EditMessageServlet(BulletinBoard _bbs)
+ {
+ bbs = _bbs;
+ }
+
+ public void doGet(HttpServletRequest _req,HttpServletResponse _res)
+ {
+ String bname = _req.getParameter(PARAM_BOARD_NAME);
+ String uuid = _req.getParameter(PARAM_BOARD_MSGID);
+ System.out.println("write");
+
+ try{
+ PrintWriter pw = _res.getWriter();
+ pw.write("edit message
");
+ pw.write("
\n");
+ _pw.write("Message
\n");
+ _pw.write("\n");
+ GetAttributeImp attribute = bbs.getAttribute(_bname, "[-1]", "1");
+ Iterator keys = attribute.getKeys();
+
+ do {
+ String key = keys.next();
+ String mesage = attribute.getMessage(key);
+ _pw.write("" + key + " = " + mesage + "
\n");
+ }while(keys.hasNext());
+
+ _pw.write("");
+ _pw.flush();
+ }
+}
diff -r 000000000000 -r 44465893e8b8 src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/ShowBoardsServlet.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/ShowBoardsServlet.java Wed Nov 30 01:47:55 2016 +0900
@@ -0,0 +1,55 @@
+package jp.ac.u_ryukyu.ie.cr.jungle.bbs;
+
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.PrintWriter;
+
+public class ShowBoardsServlet extends HttpServlet
+{
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private final BulletinBoard bbs;
+ private final String createBoardPath;
+ private final String showBoardMessagePath;
+
+ public ShowBoardsServlet(BulletinBoard _bbs, String _createBoardPath,String _showBoardMessagePath)
+ {
+ bbs = _bbs;
+ createBoardPath = _createBoardPath;
+ showBoardMessagePath = _showBoardMessagePath;
+ }
+
+ public void doGet(HttpServletRequest _req,HttpServletResponse _res)
+ {
+ try{
+ _res.setCharacterEncoding("UTF-8");
+ printBoard(_res.getWriter());
+ }catch(Exception _e){
+ _res.setStatus(500);
+ }
+
+ }
+
+ private void printBoard(PrintWriter _pw) throws Exception
+ {
+ _pw.write("\n");
+ _pw.write("BBS
\n");
+ _pw.write("