changeset 121:790a73e0c8ec

add svg for graffle
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 03 Oct 2014 19:03:27 +0900
parents f783a27eed24
children ef1173d93a45
files document/basic_api_architecture.svg document/jungle_artitecture.svg document/node_transform_architecture.svg document/traverser_api_architecture.svg document/tree_store_api_b.svg document/tree_store_api_type_a.svg document/version_control_api.svg
diffstat 7 files changed, 21 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/document/basic_api_architecture.svg	Fri Oct 03 19:03:27 2014 +0900
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="11 1 542 578" width="542pt" height="578pt"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>2012-12-10 11:32Z</dc:date><!-- Produced by OmniGraffle Professional 5.4.4 --></metadata><defs><font-face font-family="Hiragino Kaku Gothic ProN" font-size="12" panose-1="2 11 3 0 0 0 0 0 0 0" units-per-em="1000" underline-position="-60" underline-thickness="63.000004" slope="0" x-height="545" cap-height="766" ascent="880.00183" descent="-120.000244" font-weight="400"><font-face-src><font-face-name name="HiraKakuProN-W3"/></font-face-src></font-face><font-face font-family="Hiragino Kaku Gothic ProN" font-size="12" panose-1="2 11 6 0 0 0 0 0 0 0" units-per-em="1000" underline-position="-60" underline-thickness="117" slope="0" x-height="562" cap-height="784" ascent="880.00183" descent="-120.000244" font-weight="bold"><font-face-src><font-face-name name="HiraKakuProN-W6"/></font-face-src></font-face><font-face font-family="Helvetica" font-size="12" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="522.94922" cap-height="717.28516" ascent="770.01953" descent="-229.98047" font-weight="500"><font-face-src><font-face-name name="Helvetica"/></font-face-src></font-face><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" viewBox="-1 -5 11 10" markerWidth="11" markerHeight="10" color="black"><g><path d="M 8.1142883 0 L 0 -3.0428581 L 0 3.0428581 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/></g></marker><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="Arrow_Marker" viewBox="-9 -4 10 8" markerWidth="10" markerHeight="8" color="black"><g><path d="M -8 0 L 0 3 L 0 -3 Z" fill="none" stroke="currentColor" stroke-width="1"/></g></marker><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="Arrow_Marker_2" viewBox="-1 -5 11 10" markerWidth="11" markerHeight="10" color="black"><g><path d="M 8.1142883 0 L 0 -3.0428581 L 0 3.0428581 Z" fill="none" stroke="currentColor" stroke-width="1"/></g></marker></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><title>キャンバス 1</title><rect fill="white" width="559" height="783"/><g><title>レイヤー 1</title><rect x="181" y="323" width="176" height="36" fill="white"/><rect x="181" y="323" width="176" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(186 323)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="11" textLength="157.008">+ Attributes getAttribute()</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="29" textLength="142.86">+ Children getChildren()</tspan></text><rect x="181" y="287" width="176" height="36" fill="white"/><rect x="181" y="287" width="176" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(186 287)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="43.712" y="11" textLength="78.575996">&lt;&lt;inteface&gt;&gt;</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="65.99" y="29" textLength="34.02">Node</tspan></text><rect x="22" y="446.5" width="185" height="18" fill="white"/><rect x="22" y="446.5" width="185" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(27 446.5)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="11" textLength="63.624">+ ByteBuff</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="63.624" y="11" textLength="104.664">er get(String key)</tspan></text><rect x="22" y="410.5" width="185" height="36" fill="white"/><rect x="22" y="410.5" width="185" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(27 410.5)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="48.212" y="11" textLength="78.575996">&lt;&lt;inteface&gt;&gt;</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="54.608" y="29" textLength="65.783997">Attributes</tspan></text><rect x="337.5" y="446.5" width="185" height="18" fill="white"/><rect x="337.5" y="446.5" width="185" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(342.5 446.5)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="11" textLength="156.504">+ Iterator&lt;Node&gt; iterator()</tspan></text><rect x="337.5" y="410.5" width="185" height="36" fill="white"/><rect x="337.5" y="410.5" width="185" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(342.5 410.5)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="48.212" y="11" textLength="78.575996">&lt;&lt;inteface&gt;&gt;</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="60.398" y="29" textLength="54.204">Children</tspan></text><ellipse cx="430.25" cy="550" rx="18.250029" ry="18.000029" fill="white"/><ellipse cx="430.25" cy="550" rx="18.250029" ry="18.000029" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(460.25 538)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x="4.4716797" y="11" textLength="74.05664">&lt;&lt;interface&gt;&gt;</tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x=".13574219" y="25" textLength="82.728516">Iterable&lt;Node&gt;</tspan></text><line x1="430.03105" y1="465" x2="430.21727" y2="521.98576" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><line x1="155.33235" y1="405.37489" x2="236.7821" y2="359.2464" marker-start="url(#Arrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><line x1="387.7423" y1="405.53386" x2="302.55928" y2="359.23876" marker-start="url(#Arrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><rect x="181" y="210" width="176" height="18" fill="white"/><rect x="181" y="210" width="176" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(186 210)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="11" textLength="103.872">+ Node getRoot()</tspan></text><rect x="181" y="174" width="176" height="36" fill="white"/><rect x="181" y="174" width="176" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(186 174)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="43.712" y="11" textLength="78.575996">&lt;&lt;inteface&gt;&gt;</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="68.69" y="29" textLength="8.5080004">T</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="76.118" y="29" textLength="21.192">ree</tspan></text><line x1="269" y1="228.5" x2="269" y2="276.48571" marker-end="url(#Arrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><text transform="translate(23.5 10)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="5.4902344" y="11" textLength="24">基本</tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x="29.490234" y="11" textLength="3.3339844"> </tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x="32.167969" y="11" textLength="19.341797">API</tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x=".15234375" y="29" textLength="56.695312">Read Only</tspan></text><text transform="translate(441 491.25)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x=".46972656" y="11" textLength="70.060547">&lt;&lt;extends&gt;&gt;</tspan></text><text transform="translate(255.5 370)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x=".31054688" y="11" textLength="47.378906">&lt;&lt;use&gt;&gt;</tspan></text><text transform="translate(279.5 250.5)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x=".31054688" y="11" textLength="47.378906">&lt;&lt;use&gt;&gt;</tspan></text></g></g></svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/document/jungle_artitecture.svg	Fri Oct 03 19:03:27 2014 +0900
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="80 92 391 424" width="391pt" height="424pt"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>2012-12-11 08:21Z</dc:date><!-- Produced by OmniGraffle Professional 5.4.4 --></metadata><defs><font-face font-family="Hiragino Kaku Gothic ProN" font-size="15" panose-1="2 11 3 0 0 0 0 0 0 0" units-per-em="1000" underline-position="-59.999996" underline-thickness="62.999996" slope="0" x-height="545" cap-height="766" ascent="880.00177" descent="-120.00024" font-weight="400"><font-face-src><font-face-name name="HiraKakuProN-W3"/></font-face-src></font-face><font-face font-family="Hiragino Kaku Gothic ProN" font-size="15" panose-1="2 11 6 0 0 0 0 0 0 0" units-per-em="1000" underline-position="-59.999996" underline-thickness="116.99999" slope="0" x-height="562" cap-height="784" ascent="880.00177" descent="-120.00024" font-weight="bold"><font-face-src><font-face-name name="HiraKakuProN-W6"/></font-face-src></font-face><font-face font-family="Hiragino Kaku Gothic ProN" font-size="12" panose-1="2 11 3 0 0 0 0 0 0 0" units-per-em="1000" underline-position="-60" underline-thickness="63.000004" slope="0" x-height="545" cap-height="766" ascent="880.00183" descent="-120.000244" font-weight="400"><font-face-src><font-face-name name="HiraKakuProN-W3"/></font-face-src></font-face><font-face font-family="Hiragino Kaku Gothic ProN" font-size="12" panose-1="2 11 6 0 0 0 0 0 0 0" units-per-em="1000" underline-position="-60" underline-thickness="117" slope="0" x-height="562" cap-height="784" ascent="880.00183" descent="-120.000244" font-weight="bold"><font-face-src><font-face-name name="HiraKakuProN-W6"/></font-face-src></font-face><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="Arrow_Marker" viewBox="-1 -5 11 10" markerWidth="11" markerHeight="10" color="black"><g><path d="M 8.1142883 0 L 0 -3.0428581 L 0 3.0428581 Z" fill="none" stroke="currentColor" stroke-width="1"/></g></marker><font-face font-family="Helvetica" font-size="10" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="522.94922" cap-height="717.28516" ascent="770.01953" descent="-229.98047" font-weight="500"><font-face-src><font-face-name name="Helvetica"/></font-face-src></font-face><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" viewBox="-9 -4 10 8" markerWidth="10" markerHeight="8" color="black"><g><path d="M -8 0 L 0 3 L 0 -3 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/></g></marker><font-face font-family="Helvetica" font-size="12" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="522.94922" cap-height="717.28516" ascent="770.01953" descent="-229.98047" font-weight="500"><font-face-src><font-face-name name="Helvetica"/></font-face-src></font-face></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><title>キャンバス 1</title><rect fill="white" width="559" height="783"/><g><title>レイヤー 1</title><rect x="91.75" y="126" width="367.5" height="92" fill="white"/><rect x="91.75" y="126" width="367.5" height="92" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(96.75 126)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="15" font-weight="400" x="0" y="13" textLength="249.465">+ Iterable&lt;JungleTree&gt; getTrees()</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="15" font-weight="400" x="0" y="36" textLength="323.055">+ JungleTree getTreeByName(String name)</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="15" font-weight="400" x="0" y="59" textLength="315.975">+ JungleTree createNewTree(String name)</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="15" font-weight="400" x="0" y="82" textLength="231.135">+ void deleteTree(String name)</tspan></text><rect x="91.75" y="103" width="367.5" height="23" fill="white"/><rect x="91.75" y="103" width="367.5" height="23" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(96.75 103)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="15" font-weight="bold" x="140.5225" y="13" textLength="76.455">JungleDB</tspan></text><rect x="148" y="301" width="255" height="54" fill="white"/><rect x="148" y="301" width="255" height="54" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(153 301)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="11" textLength="231.6">+ MergeResult push(JungleDB remote)</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="29" textLength="223.32001">+ MergeResult pull(JungleDB remote)</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="47" textLength="142.296005">+ TreeEditor getEditor()</tspan></text><rect x="148" y="283" width="255" height="18" fill="white"/><rect x="148" y="283" width="255" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(153 283)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="86.968" y="11" textLength="50.952">JungleT</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="136.84" y="11" textLength="21.192">ree</tspan></text><line x1="275.50001" y1="218.5" x2="275.50001" y2="272.48571" marker-end="url(#Arrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><ellipse cx="275.5" cy="448" rx="18.250029" ry="18.000029" fill="white"/><ellipse cx="275.5" cy="448" rx="18.250029" ry="18.000029" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(239 483)" fill="black"><tspan font-family="Helvetica" font-size="10" font-weight="500" x="5.6430664" y="10" textLength="61.713867">&lt;&lt;interface&gt;&gt;</tspan><tspan font-family="Helvetica" font-size="10" font-weight="500" x=".18652344" y="22" textLength="6.1083984">T</tspan><tspan font-family="Helvetica" font-size="10" font-weight="500" x="5.928711" y="22" textLength="52.79785">raversableT</tspan><tspan font-family="Helvetica" font-size="10" font-weight="500" x="58.36035" y="22" textLength="14.453125">ree</tspan></text><line x1="275.5" y1="420.1" x2="275.5" y2="355.5" marker-start="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(290 243.5)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x=".31054688" y="11" textLength="47.378906">&lt;&lt;use&gt;&gt;</tspan></text></g></g></svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/document/node_transform_architecture.svg	Fri Oct 03 19:03:27 2014 +0900
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="-10 2 573 757" width="573pt" height="757pt"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>2012-12-10 15:30Z</dc:date><!-- Produced by OmniGraffle Professional 5.4.4 --></metadata><defs><font-face font-family="Helvetica" font-size="12" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="522.94922" cap-height="717.28516" ascent="770.01953" descent="-229.98047" font-weight="500"><font-face-src><font-face-name name="Helvetica"/></font-face-src></font-face><font-face font-family="Hiragino Kaku Gothic ProN" font-size="12" panose-1="2 11 3 0 0 0 0 0 0 0" units-per-em="1000" underline-position="-60" underline-thickness="63.000004" slope="0" x-height="545" cap-height="766" ascent="880.00183" descent="-120.000244" font-weight="400"><font-face-src><font-face-name name="HiraKakuProN-W3"/></font-face-src></font-face><font-face font-family="Hiragino Kaku Gothic ProN" font-size="12" panose-1="2 11 6 0 0 0 0 0 0 0" units-per-em="1000" underline-position="-60" underline-thickness="117" slope="0" x-height="562" cap-height="784" ascent="880.00183" descent="-120.000244" font-weight="bold"><font-face-src><font-face-name name="HiraKakuProN-W6"/></font-face-src></font-face><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="Arrow_Marker" viewBox="-1 -5 11 10" markerWidth="11" markerHeight="10" color="black"><g><path d="M 8.1142883 0 L 0 -3.0428581 L 0 3.0428581 Z" fill="none" stroke="currentColor" stroke-width="1"/></g></marker><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="Arrow_Marker_2" viewBox="-9 -4 10 8" markerWidth="10" markerHeight="8" color="black"><g><path d="M -8 0 L 0 3 L 0 -3 Z" fill="none" stroke="currentColor" stroke-width="1"/></g></marker><font-face font-family="Helvetica" font-size="10" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="522.94922" cap-height="717.28516" ascent="770.01953" descent="-229.98047" font-weight="500"><font-face-src><font-face-name name="Helvetica"/></font-face-src></font-face><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" viewBox="-9 -4 10 8" markerWidth="10" markerHeight="8" color="black"><g><path d="M -8 0 L 0 3 L 0 -3 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/></g></marker></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><title>キャンバス 1</title><rect fill="white" width="559" height="783"/><g><title>レイヤー 1</title><text transform="translate(10 11)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x=".029296875" y="11" textLength="36.017578">NodeT</tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x="35.607422" y="11" textLength="50.677734">ransform </tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x="85.628906" y="11" textLength="19.341797">API</tspan></text><rect x="121" y="125" width="317" height="18" fill="white"/><rect x="121" y="125" width="317" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(126 125)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="11" textLength="295.116">+ Transformation transform(EditableNode target)</tspan></text><rect x="121" y="89" width="317" height="36" fill="white"/><rect x="121" y="89" width="317" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(126 89)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="111.26" y="11" textLength="84.480003">&lt;&lt;interface&gt;&gt;</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="95.756" y="29" textLength="42.528">NodeT</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="137.204" y="29" textLength="74.04">ransformer</tspan></text><rect x="171" y="236" width="217" height="36" fill="white"/><rect x="171" y="236" width="217" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(176 236)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="11" textLength="202.092">+ EditableNode getEditableNode()</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="29" textLength="180.636">+ TransformResult getResult()</tspan></text><rect x="171" y="200" width="217" height="36" fill="white"/><rect x="171" y="200" width="217" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(176 200)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="64.212" y="11" textLength="78.575996">&lt;&lt;inteface&gt;&gt;</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="53.448" y="29" textLength="8.5080004">T</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="60.876" y="29" textLength="92.676">ransformation</tspan></text><rect x="152" y="449" width="255" height="36" fill="white"/><rect x="152" y="449" width="255" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(157 449)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="11" textLength="210.972">+ EditableAttributes getAttributes()</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="29" textLength="190.38">+ EditableChildren getChildren()</tspan></text><rect x="152" y="413" width="255" height="36" fill="white"/><rect x="152" y="413" width="255" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(157 413)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="83.212" y="11" textLength="78.575996">&lt;&lt;inteface&gt;&gt;</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="79.42" y="29" textLength="86.160004">EditableNode</tspan></text><text transform="translate(61 513)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="11" textLength="72">循環参照あり</tspan></text><rect x="10" y="599" width="259" height="36" fill="white"/><rect x="10" y="599" width="259" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(15 599)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="11" textLength="220.524">+ EditableNode put(String k,ByteBuff</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="220.524" y="11" textLength="27.011999">er v)</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="29" textLength="186.68401">+ EditableNode delete(String k)</tspan></text><rect x="10" y="563" width="259" height="36" fill="white"/><rect x="10" y="563" width="259" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(15 563)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="85.212" y="11" textLength="78.575996">&lt;&lt;inteface&gt;&gt;</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="65.538" y="29" textLength="117.924004">EditableAttributes</tspan></text><rect x="284" y="599" width="259" height="36" fill="white"/><rect x="284" y="599" width="259" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(289 599)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="11" textLength="211.48801">+ EditableNode newChildAt(int pos)</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="29" textLength="224.184">+ EditableNode deleteChildAt(int pos)</tspan></text><rect x="284" y="563" width="259" height="36" fill="white"/><rect x="284" y="563" width="259" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(289 563)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="85.212" y="11" textLength="78.575996">&lt;&lt;inteface&gt;&gt;</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="71.328" y="29" textLength="106.344">EditableChildren</tspan></text><line x1="249.3302" y1="491.56683" x2="169.75842" y2="556.361" marker-end="url(#Arrow_Marker)" marker-start="url(#Arrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><line x1="308.57915" y1="491.73897" x2="384.3338" y2="556.18697" marker-end="url(#Arrow_Marker)" marker-start="url(#Arrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><line x1="279.5" y1="143.5" x2="279.5" y2="189.48571" marker-end="url(#Arrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><line x1="279.50001" y1="272.5" x2="279.50001" y2="402.4857" marker-end="url(#Arrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><ellipse cx="139.25" cy="730" rx="18.250029" ry="18.000029" fill="white"/><ellipse cx="139.25" cy="730" rx="18.250029" ry="18.000029" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(172.75 718)" fill="black"><tspan font-family="Helvetica" font-size="10" font-weight="500" x=".14306641" y="10" textLength="61.713867">&lt;&lt;interface&gt;&gt;</tspan><tspan font-family="Helvetica" font-size="10" font-weight="500" x="9.8793945" y="22" textLength="42.24121">Attributes</tspan></text><ellipse cx="413.25" cy="724" rx="18.250029" ry="18.000029" fill="white"/><ellipse cx="413.25" cy="724" rx="18.250029" ry="18.000029" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(446.75 712)" fill="black"><tspan font-family="Helvetica" font-size="10" font-weight="500" x=".14306641" y="10" textLength="61.713867">&lt;&lt;interface&gt;&gt;</tspan><tspan font-family="Helvetica" font-size="10" font-weight="500" x="12.3793945" y="22" textLength="37.24121">Children</tspan></text><line x1="139.27605" y1="702.10003" x2="139.451316" y2="635.5" marker-start="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><line x1="413.2778" y1="696.10003" x2="413.44803" y2="635.5" marker-start="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="338" y="342.5" width="193" height="36" fill="white"/><rect x="338" y="342.5" width="193" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(343 342.5)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="11" textLength="174.744">+ TransformResult SUCCESS</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="29" textLength="141.96001">+ TransformResult FAIL</tspan></text><rect x="338" y="306.5" width="193" height="36" fill="white"/><rect x="338" y="306.5" width="193" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(343 306.5)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="60.582" y="11" textLength="61.836">&lt;&lt;enum&gt;&gt;</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="37.254" y="29" textLength="8.5080004">T</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="44.682" y="29" textLength="101.064">ransformResult</tspan></text><line x1="319.5296" y1="272.20701" x2="385.35474" y2="302.14683" marker-end="url(#Arrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><text transform="translate(289 166)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x=".31054688" y="11" textLength="53.378906">&lt;&lt;uses&gt;&gt;</tspan></text><text transform="translate(386.25 277)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x=".31054688" y="11" textLength="53.378906">&lt;&lt;uses&gt;&gt;</tspan></text><text transform="translate(215 346)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x=".31054688" y="11" textLength="53.378906">&lt;&lt;uses&gt;&gt;</tspan></text><text transform="translate(252.5 513)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x=".31054688" y="11" textLength="53.378906">&lt;&lt;uses&gt;&gt;</tspan></text><ellipse cx="62.5" cy="468" rx="18.250029" ry="18.000029" fill="white"/><ellipse cx="62.5" cy="468" rx="18.250029" ry="18.000029" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(31.5 418)" fill="black"><tspan font-family="Helvetica" font-size="10" font-weight="500" x=".14306641" y="10" textLength="61.713867">&lt;&lt;interface&gt;&gt;</tspan><tspan font-family="Helvetica" font-size="10" font-weight="500" x="19.046875" y="22" textLength="23.90625">Node</tspan></text><line x1="90.649883" y1="467.9502" x2="151.50001" y2="467.64403" marker-start="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/></g></g></svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/document/traverser_api_architecture.svg	Fri Oct 03 19:03:27 2014 +0900
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="-11 7 581 712" width="581pt" height="712pt"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>2012-12-10 13:35Z</dc:date><!-- Produced by OmniGraffle Professional 5.4.4 --></metadata><defs><font-face font-family="Hiragino Kaku Gothic ProN" font-size="12" panose-1="2 11 3 0 0 0 0 0 0 0" units-per-em="1000" underline-position="-60" underline-thickness="63.000004" slope="0" x-height="545" cap-height="766" ascent="880.00183" descent="-120.000244" font-weight="400"><font-face-src><font-face-name name="HiraKakuProN-W3"/></font-face-src></font-face><font-face font-family="Hiragino Kaku Gothic ProN" font-size="12" panose-1="2 11 6 0 0 0 0 0 0 0" units-per-em="1000" underline-position="-60" underline-thickness="117" slope="0" x-height="562" cap-height="784" ascent="880.00183" descent="-120.000244" font-weight="bold"><font-face-src><font-face-name name="HiraKakuProN-W6"/></font-face-src></font-face><font-face font-family="Hiragino Kaku Gothic ProN" font-size="10" panose-1="2 11 3 0 0 0 0 0 0 0" units-per-em="1000" underline-position="-60" underline-thickness="63" slope="0" x-height="545" cap-height="766" ascent="880.00177" descent="-120.000244" font-weight="400"><font-face-src><font-face-name name="HiraKakuProN-W3"/></font-face-src></font-face><font-face font-family="Hiragino Kaku Gothic ProN" font-size="10" panose-1="2 11 6 0 0 0 0 0 0 0" units-per-em="1000" underline-position="-60" underline-thickness="117" slope="0" x-height="562" cap-height="784" ascent="880.00177" descent="-120.000244" font-weight="bold"><font-face-src><font-face-name name="HiraKakuProN-W6"/></font-face-src></font-face><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" viewBox="-9 -4 10 8" markerWidth="10" markerHeight="8" color="black"><g><path d="M -8 0 L 0 3 L 0 -3 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/></g></marker><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="Arrow_Marker" viewBox="-9 -4 10 8" markerWidth="10" markerHeight="8" color="black"><g><path d="M -8 0 L 0 3 L 0 -3 Z" fill="none" stroke="currentColor" stroke-width="1"/></g></marker><font-face font-family="Helvetica" font-size="10" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="522.94922" cap-height="717.28516" ascent="770.01953" descent="-229.98047" font-weight="500"><font-face-src><font-face-name name="Helvetica"/></font-face-src></font-face><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker_2" viewBox="-1 -5 11 10" markerWidth="11" markerHeight="10" color="black"><g><path d="M 8.1142883 0 L 0 -3.0428581 L 0 3.0428581 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/></g></marker><font-face font-family="Helvetica" font-size="12" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="522.94922" cap-height="717.28516" ascent="770.01953" descent="-229.98047" font-weight="500"><font-face-src><font-face-name name="Helvetica"/></font-face-src></font-face><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="Arrow_Marker_2" viewBox="-1 -5 11 10" markerWidth="11" markerHeight="10" color="black"><g><path d="M 8.1142883 0 L 0 -3.0428581 L 0 3.0428581 Z" fill="none" stroke="currentColor" stroke-width="1"/></g></marker></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><title>キャンバス 1</title><rect fill="white" width="559" height="783"/><g><title>レイヤー 1</title><rect x="84.5" y="321" width="379.5" height="18" fill="white"/><rect x="84.5" y="321" width="379.5" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(89.5 321)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="11" textLength="338.064">+ Iterable&lt;TraverseResult&gt; traverse(TraverseEvaluator e)</tspan></text><rect x="84.5" y="285" width="379.5" height="36" fill="white"/><rect x="84.5" y="285" width="379.5" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(89.5 285)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="145.462" y="11" textLength="78.575996">&lt;&lt;inteface&gt;&gt;</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="146.734" y="29" textLength="8.5080004">T</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="154.162" y="29" textLength="68.603996">raversable</tspan></text><rect x="124.75" y="412.09375" width="296" height="15" fill="white"/><rect x="124.75" y="412.09375" width="296" height="15" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(129.75 412.09375)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="10" font-weight="400" x="0" y="9" textLength="281.01001">+ Evaluation eval(Iterable&lt;Node&gt; path,Node child,int pos)</tspan></text><rect x="124.75" y="382.09375" width="296" height="30" fill="white"/><rect x="124.75" y="382.09375" width="296" height="30" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(129.75 382.09375)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="10" font-weight="bold" x="110.26" y="9" textLength="65.480003">&lt;&lt;inteface&gt;&gt;</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="10" font-weight="bold" x="93.805" y="24" textLength="7.09">T</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="10" font-weight="bold" x="99.995" y="24" textLength="92.199997">raverseEvaluator</tspan></text><rect x="182.75" y="500.1875" width="180" height="30" fill="white"/><rect x="182.75" y="500.1875" width="180" height="30" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(187.75 500.1875)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="10" font-weight="400" x="0" y="9" textLength="129.84">+ EvaluationResult result()</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="10" font-weight="400" x="0" y="24" textLength="155.880005">+ TraverseEvaluator evaluator()</tspan></text><rect x="182.75" y="470.1875" width="180" height="30" fill="white"/><rect x="182.75" y="470.1875" width="180" height="30" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(187.75 470.1875)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="10" font-weight="bold" x="52.26" y="9" textLength="65.480003">&lt;&lt;inteface&gt;&gt;</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="10" font-weight="bold" x="57.17" y="24" textLength="55.66">Evaluation</tspan></text><rect x="212.25" y="618.6875" width="124" height="15" fill="white"/><rect x="212.25" y="618.6875" width="124" height="15" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(217.25 618.6875)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="10" font-weight="400" x="0" y="9" textLength="27.02">+ ???</tspan></text><rect x="212.25" y="588.6875" width="124" height="30" fill="white"/><rect x="212.25" y="588.6875" width="124" height="30" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(217.25 588.6875)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="10" font-weight="bold" x="31.235" y="9" textLength="51.53">&lt;&lt;enum&gt;&gt;</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="10" font-weight="bold" x="12.265" y="24" textLength="89.47">EvaluationResult</tspan></text><rect x="434.25" y="693" width="124" height="15" fill="white"/><rect x="434.25" y="693" width="124" height="15" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(439.25 693)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="10" font-weight="400" x="0" y="9" textLength="27.02">+ ???</tspan></text><rect x="434.25" y="678" width="124" height="15" fill="white"/><rect x="434.25" y="678" width="124" height="15" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(439.25 678)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="10" font-weight="bold" x="20.13" y="9" textLength="73.74">DENY_BREAK</tspan></text><rect x="291.375" y="693" width="124" height="15" fill="white"/><rect x="291.375" y="693" width="124" height="15" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(296.375 693)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="10" font-weight="400" x="0" y="9" textLength="27.02">+ ???</tspan></text><rect x="291.375" y="678" width="124" height="15" fill="white"/><rect x="291.375" y="678" width="124" height="15" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(296.375 678)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="10" font-weight="bold" x="10.185" y="9" textLength="93.63">DENY_CONTINUE</tspan></text><rect x="148.5" y="693" width="124" height="15" fill="white"/><rect x="148.5" y="693" width="124" height="15" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(153.5 693)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="10" font-weight="400" x="0" y="9" textLength="27.02">+ ???</tspan></text><rect x="148.5" y="678" width="124" height="15" fill="white"/><rect x="148.5" y="678" width="124" height="15" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(153.5 678)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="10" font-weight="bold" x="12.985" y="9" textLength="88.03">ACCEPT_BREAK</tspan></text><rect x=".75" y="693" width="124" height="15" fill="white"/><rect x=".75" y="693" width="124" height="15" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(5.75 693)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="10" font-weight="400" x="0" y="9" textLength="27.02">+ ???</tspan></text><rect x=".75" y="678" width="124" height="15" fill="white"/><rect x=".75" y="678" width="124" height="15" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(5.75 678)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="10" font-weight="bold" x="3.04" y="9" textLength="107.92">ACCEPT_CONTINUE</tspan></text><line x1="237.49237" y1="636.4957" x2="89.97537" y2="677.865" marker-start="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><line x1="258.57475" y1="640.77163" x2="218.92718" y2="677.6594" marker-start="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><line x1="292.57685" y1="639.9254" x2="342.96966" y2="677.7001" marker-start="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><line x1="312.36923" y1="636.37194" x2="467.6953" y2="677.87094" marker-start="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="126.25" y="195" width="296" height="30" fill="white"/><rect x="126.25" y="195" width="296" height="30" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(131.25 195)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="10" font-weight="400" x="0" y="9" textLength="134.72">+ Iterator&lt;Node&gt; itrerator()</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="10" font-weight="400" x="0" y="24" textLength="76.85">+ Node target()</tspan></text><rect x="126.25" y="165" width="296" height="30" fill="white"/><rect x="126.25" y="165" width="296" height="30" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(131.25 165)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="10" font-weight="bold" x="110.26" y="9" textLength="65.480003">&lt;&lt;inteface&gt;&gt;</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="10" font-weight="bold" x="102.47" y="24" textLength="7.09">T</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="10" font-weight="bold" x="108.66" y="24" textLength="74.870003">raverseResult</tspan></text><line x1="274.25001" y1="235.4" x2="274.25001" y2="284.5" marker-start="url(#Arrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><ellipse cx="275" cy="93" rx="18.250029" ry="18.000029" fill="white"/><ellipse cx="275" cy="93" rx="18.250029" ry="18.000029" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(305 81)" fill="black"><tspan font-family="Helvetica" font-size="10" font-weight="500" x="3.6430664" y="10" textLength="61.713867">&lt;&lt;interface&gt;&gt;</tspan><tspan font-family="Helvetica" font-size="10" font-weight="500" x=".029785156" y="22" textLength="68.94043">Iterable&lt;Node&gt;</tspan></text><line x1="274.41848" y1="164.50003" x2="274.89116" y2="121.013705" marker-end="url(#FilledArrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(9 16)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x=".040039062" y="11" textLength="7.330078">T</tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x="6.930664" y="11" textLength="47.34375">raverser </tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x="53.618164" y="11" textLength="19.341797">API</tspan></text><line x1="274.03761" y1="339.49988" x2="273.32036" y2="371.58209" marker-end="url(#Arrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><text transform="translate(280.25 358.09375)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x=".31054688" y="11" textLength="47.378906">&lt;&lt;use&gt;&gt;</tspan></text><text transform="translate(210.75 230.5)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x=".31054688" y="11" textLength="47.378906">&lt;&lt;use&gt;&gt;</tspan></text><line x1="272.75001" y1="427.59375" x2="272.75001" y2="459.6732" marker-end="url(#Arrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><line x1="273.01271" y1="530.68743" x2="273.81758" y2="578.17472" marker-end="url(#Arrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><text transform="translate(284.75 442.25)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x=".31054688" y="11" textLength="47.378906">&lt;&lt;use&gt;&gt;</tspan></text><text transform="translate(284.75 560.125)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x=".31054688" y="11" textLength="47.378906">&lt;&lt;use&gt;&gt;</tspan></text><text transform="translate(382.75 639)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x=".46972656" y="11" textLength="70.060547">&lt;&lt;extends&gt;&gt;</tspan></text><text transform="translate(284.75 136.25)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x=".46972656" y="11" textLength="70.060547">&lt;&lt;extends&gt;&gt;</tspan></text></g></g></svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/document/tree_store_api_b.svg	Fri Oct 03 19:03:27 2014 +0900
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="1 5 492 684" width="41pc" height="57pc"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>2012-12-11 08:44Z</dc:date><!-- Produced by OmniGraffle Professional 5.4.4 --></metadata><defs><font-face font-family="Helvetica" font-size="12" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="522.94922" cap-height="717.28516" ascent="770.01953" descent="-229.98047" font-weight="500"><font-face-src><font-face-name name="Helvetica"/></font-face-src></font-face><font-face font-family="Helvetica" font-size="10" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="522.94922" cap-height="717.28516" ascent="770.01953" descent="-229.98047" font-weight="500"><font-face-src><font-face-name name="Helvetica"/></font-face-src></font-face><font-face font-family="Hiragino Kaku Gothic ProN" font-size="12" panose-1="2 11 3 0 0 0 0 0 0 0" units-per-em="1000" underline-position="-60" underline-thickness="63.000004" slope="0" x-height="545" cap-height="766" ascent="880.00183" descent="-120.000244" font-weight="400"><font-face-src><font-face-name name="HiraKakuProN-W3"/></font-face-src></font-face><font-face font-family="Hiragino Kaku Gothic ProN" font-size="12" panose-1="2 11 6 0 0 0 0 0 0 0" units-per-em="1000" underline-position="-60" underline-thickness="117" slope="0" x-height="562" cap-height="784" ascent="880.00183" descent="-120.000244" font-weight="bold"><font-face-src><font-face-name name="HiraKakuProN-W6"/></font-face-src></font-face><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" viewBox="-9 -4 10 8" markerWidth="10" markerHeight="8" color="black"><g><path d="M -8 0 L 0 3 L 0 -3 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/></g></marker><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker_2" viewBox="-1 -5 11 10" markerWidth="11" markerHeight="10" color="black"><g><path d="M 8.1142883 0 L 0 -3.0428581 L 0 3.0428581 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/></g></marker><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="Arrow_Marker" viewBox="-1 -5 11 10" markerWidth="11" markerHeight="10" color="black"><g><path d="M 8.1142883 0 L 0 -3.0428581 L 0 3.0428581 Z" fill="none" stroke="currentColor" stroke-width="1"/></g></marker><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="Arrow_Marker_2" viewBox="-9 -4 10 8" markerWidth="10" markerHeight="8" color="black"><g><path d="M -8 0 L 0 3 L 0 -3 Z" fill="none" stroke="currentColor" stroke-width="1"/></g></marker></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><title>キャンバス 1</title><rect fill="white" width="559" height="783"/><g><title>レイヤー 1</title><text transform="translate(10 14)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x=".103515625" y="11" textLength="7.330078">T</tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x="6.9941406" y="11" textLength="49.359375">reeStore </tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x="55.697266" y="11" textLength="39.199219">API "B"</tspan></text><ellipse cx="152" cy="46" rx="18.250029" ry="18.000029" fill="white"/><ellipse cx="152" cy="46" rx="18.250029" ry="18.000029" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(185.5 34)" fill="black"><tspan font-family="Helvetica" font-size="10" font-weight="500" x=".14306641" y="10" textLength="61.713867">&lt;&lt;interface&gt;&gt;</tspan><tspan font-family="Helvetica" font-size="10" font-weight="500" x="4.7841797" y="22" textLength="6.1083984">T</tspan><tspan font-family="Helvetica" font-size="10" font-weight="500" x="10.526367" y="22" textLength="46.689453">raversable</tspan></text><ellipse cx="338" cy="46" rx="18.250029" ry="18.000029" fill="white"/><ellipse cx="338" cy="46" rx="18.250029" ry="18.000029" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(371.5 34)" fill="black"><tspan font-family="Helvetica" font-size="10" font-weight="500" x=".14306641" y="10" textLength="61.713867">&lt;&lt;interface&gt;&gt;</tspan><tspan font-family="Helvetica" font-size="10" font-weight="500" x="20.902344" y="22" textLength="6.1083984">T</tspan><tspan font-family="Helvetica" font-size="10" font-weight="500" x="26.644531" y="22" textLength="14.453125">ree</tspan></text><rect x="77.5" y="134" width="356" height="36" fill="white"/><rect x="77.5" y="134" width="356" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(82.5 134)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="11" textLength="103.872">+ Node getRoot()</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="29" textLength="338.064">+ Iterable&lt;TraverseResult&gt; traverse(TraverseEvaluator e)</tspan></text><rect x="77.5" y="98" width="356" height="36" fill="white"/><rect x="77.5" y="98" width="356" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(82.5 98)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="130.76" y="11" textLength="84.480003">&lt;&lt;interface&gt;&gt;</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="120.674" y="29" textLength="8.5080004">T</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="128.102" y="29" textLength="77.112">raversableT</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="204.134" y="29" textLength="21.192">ree</tspan></text><line x1="160.84627" y1="68.44451" x2="219.22629" y2="97.77553" marker-start="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><line x1="329.20185" y1="69.54551" x2="284.48069" y2="97.73339" marker-start="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="153" y="260" width="195.5" height="18" fill="white"/><rect x="153" y="260" width="195.5" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(158 260)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="11" textLength="179.65199">+ TreeEditor getCurrentTree()</tspan></text><rect x="153" y="224" width="195.5" height="36" fill="white"/><rect x="153" y="224" width="195.5" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(158 224)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="50.51" y="11" textLength="84.480003">&lt;&lt;interface&gt;&gt;</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="60.752" y="29" textLength="8.5080004">T</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="68.18" y="29" textLength="56.568">reeStore</tspan></text><rect x="68.25" y="348" width="365" height="144" fill="white"/><rect x="68.25" y="348" width="365" height="144" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(73.25 348)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="11" textLength="167.508">+ TraversableTree getTree()</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="29" textLength="261.92401">+ Result appendChildBehindOf(NodePath p)</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="47" textLength="261.08401">+ Result appendChildInfrontOf(NodePath p)</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="65" textLength="198.108">+ Result deleteChild(NodePath p)</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="83" textLength="305.064">+ Result putAttribute(NodePath p,String k,ByteBuff</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="305.064" y="83" textLength="27.011999">er v)</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="101" textLength="271.224">+ Result deleteAttribute(NodePath p,String k)</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="119" textLength="118.992">+ boolean success()</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="137" textLength="66.587997">+ void fail()</tspan></text><rect x="68.25" y="312" width="365" height="36" fill="white"/><rect x="68.25" y="312" width="365" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(73.25 312)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="135.26" y="11" textLength="84.480003">&lt;&lt;interface&gt;&gt;</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="143.636" y="29" textLength="8.5080004">T</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="151.064" y="29" textLength="60.3">reeEditor</tspan></text><rect x="25.5" y="550" width="234" height="36" fill="white"/><rect x="25.5" y="550" width="234" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(30.5 550)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="11" textLength="196.40401">+ Evaluation eval(Iterable&lt;Node&gt; </tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="29" textLength="140.808">path,Node child,int pos)</tspan></text><rect x="25.5" y="532" width="234" height="18" fill="white"/><rect x="25.5" y="532" width="234" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(30.5 532)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="80.278" y="11" textLength="63.444">NodePath</tspan></text><rect x="311.25" y="568" width="161" height="18" fill="white"/><rect x="311.25" y="568" width="161" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(316.25 568)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="11" textLength="142.296005">+ TreeEditor getEditor()</tspan></text><rect x="311.25" y="532" width="161" height="36" fill="white"/><rect x="311.25" y="532" width="161" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(316.25 532)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="36.212" y="11" textLength="78.575996">&lt;&lt;inteface&gt;&gt;</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="55.214" y="29" textLength="40.571999">Result</tspan></text><ellipse cx="86.75" cy="632" rx="18.250029" ry="18.000029" fill="white"/><ellipse cx="86.75" cy="632" rx="18.250029" ry="18.000029" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><ellipse cx="201.875" cy="632" rx="18.250029" ry="18.000029" fill="white"/><ellipse cx="201.875" cy="632" rx="18.250029" ry="18.000029" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><line x1="87.135667" y1="613.68177" x2="112.57478" y2="592.69165" marker-end="url(#FilledArrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><line x1="201.875" y1="614" x2="174.04541" y2="592.4394" marker-end="url(#FilledArrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(164.125 656)" fill="black"><tspan font-family="Helvetica" font-size="10" font-weight="500" x="7.6430664" y="10" textLength="61.713867">&lt;&lt;interface&gt;&gt;</tspan><tspan font-family="Helvetica" font-size="10" font-weight="500" x=".4165039" y="22" textLength="76.16699">Iterable&lt;Integer&gt;</tspan></text><text transform="translate(43.875 656)" fill="black"><tspan font-family="Helvetica" font-size="10" font-weight="500" x="10.1430664" y="10" textLength="61.713867">&lt;&lt;interface&gt;&gt;</tspan><tspan font-family="Helvetica" font-size="10" font-weight="500" x=".3334961" y="22" textLength="6.1083984">T</tspan><tspan font-family="Helvetica" font-size="10" font-weight="500" x="6.0756836" y="22" textLength="75.59082">raverseEvaluator</tspan></text><line x1="250.75" y1="278.5" x2="250.75" y2="301.48571" marker-end="url(#Arrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><path d="M 205.74847 174.24507 L 27.375 254 L 197.37204 311.83895" marker-start="url(#Arrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><line x1="157.48585" y1="524.24907" x2="186.0034" y2="492.37264" marker-start="url(#Arrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><line x1="329.2099" y1="492.33892" x2="364.49679" y2="524.87292" marker-end="url(#Arrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/></g></g></svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/document/tree_store_api_type_a.svg	Fri Oct 03 19:03:27 2014 +0900
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="6 7 466 743" width="466pt" height="743pt"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>2012-12-11 08:46Z</dc:date><!-- Produced by OmniGraffle Professional 5.4.4 --></metadata><defs><font-face font-family="Helvetica" font-size="12" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="522.94922" cap-height="717.28516" ascent="770.01953" descent="-229.98047" font-weight="500"><font-face-src><font-face-name name="Helvetica"/></font-face-src></font-face><font-face font-family="Helvetica" font-size="10" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="522.94922" cap-height="717.28516" ascent="770.01953" descent="-229.98047" font-weight="500"><font-face-src><font-face-name name="Helvetica"/></font-face-src></font-face><font-face font-family="Hiragino Kaku Gothic ProN" font-size="12" panose-1="2 11 3 0 0 0 0 0 0 0" units-per-em="1000" underline-position="-60" underline-thickness="63.000004" slope="0" x-height="545" cap-height="766" ascent="880.00183" descent="-120.000244" font-weight="400"><font-face-src><font-face-name name="HiraKakuProN-W3"/></font-face-src></font-face><font-face font-family="Hiragino Kaku Gothic ProN" font-size="12" panose-1="2 11 6 0 0 0 0 0 0 0" units-per-em="1000" underline-position="-60" underline-thickness="117" slope="0" x-height="562" cap-height="784" ascent="880.00183" descent="-120.000244" font-weight="bold"><font-face-src><font-face-name name="HiraKakuProN-W6"/></font-face-src></font-face><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" viewBox="-9 -4 10 8" markerWidth="10" markerHeight="8" color="black"><g><path d="M -8 0 L 0 3 L 0 -3 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/></g></marker><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker_2" viewBox="-1 -5 11 10" markerWidth="11" markerHeight="10" color="black"><g><path d="M 8.1142883 0 L 0 -3.0428581 L 0 3.0428581 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/></g></marker><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="Arrow_Marker" viewBox="-1 -5 11 10" markerWidth="11" markerHeight="10" color="black"><g><path d="M 8.1142883 0 L 0 -3.0428581 L 0 3.0428581 Z" fill="none" stroke="currentColor" stroke-width="1"/></g></marker><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="Arrow_Marker_2" viewBox="-9 -4 10 8" markerWidth="10" markerHeight="8" color="black"><g><path d="M -8 0 L 0 3 L 0 -3 Z" fill="none" stroke="currentColor" stroke-width="1"/></g></marker></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><title>キャンバス 1</title><rect fill="white" width="559" height="783"/><g><title>レイヤー 1</title><text transform="translate(15 16)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x=".103515625" y="11" textLength="7.330078">T</tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x="6.9941406" y="11" textLength="49.359375">reeStore </tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x="55.697266" y="11" textLength="39.199219">API "A"</tspan></text><ellipse cx="166" cy="69.5" rx="18.250029" ry="18.000029" fill="white"/><ellipse cx="166" cy="69.5" rx="18.250029" ry="18.000029" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(199.5 57.5)" fill="black"><tspan font-family="Helvetica" font-size="10" font-weight="500" x=".14306641" y="10" textLength="61.713867">&lt;&lt;interface&gt;&gt;</tspan><tspan font-family="Helvetica" font-size="10" font-weight="500" x="4.7841797" y="22" textLength="6.1083984">T</tspan><tspan font-family="Helvetica" font-size="10" font-weight="500" x="10.526367" y="22" textLength="46.689453">raversable</tspan></text><ellipse cx="352" cy="69.5" rx="18.250029" ry="18.000029" fill="white"/><ellipse cx="352" cy="69.5" rx="18.250029" ry="18.000029" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(385.5 57.5)" fill="black"><tspan font-family="Helvetica" font-size="10" font-weight="500" x=".14306641" y="10" textLength="61.713867">&lt;&lt;interface&gt;&gt;</tspan><tspan font-family="Helvetica" font-size="10" font-weight="500" x="20.902344" y="22" textLength="6.1083984">T</tspan><tspan font-family="Helvetica" font-size="10" font-weight="500" x="26.644531" y="22" textLength="14.453125">ree</tspan></text><rect x="91.5" y="157.5" width="356" height="36" fill="white"/><rect x="91.5" y="157.5" width="356" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(96.5 157.5)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="11" textLength="103.872">+ Node getRoot()</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="29" textLength="338.064">+ Iterable&lt;TraverseResult&gt; traverse(TraverseEvaluator e)</tspan></text><rect x="91.5" y="121.5" width="356" height="36" fill="white"/><rect x="91.5" y="121.5" width="356" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(96.5 121.5)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="130.76" y="11" textLength="84.480003">&lt;&lt;interface&gt;&gt;</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="120.674" y="29" textLength="8.5080004">T</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="128.102" y="29" textLength="77.112">raversableT</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="204.134" y="29" textLength="21.192">ree</tspan></text><line x1="174.84627" y1="91.94451" x2="233.22629" y2="121.27553" marker-start="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><line x1="343.20185" y1="93.04551" x2="298.48069" y2="121.23339" marker-start="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="171.75" y="306.25" width="195.5" height="18" fill="white"/><rect x="171.75" y="306.25" width="195.5" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(176.75 306.25)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="11" textLength="179.65199">+ TreeEditor getCurrentTree()</tspan></text><rect x="171.75" y="270.25" width="195.5" height="36" fill="white"/><rect x="171.75" y="270.25" width="195.5" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(176.75 270.25)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="50.51" y="11" textLength="84.480003">&lt;&lt;interface&gt;&gt;</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="60.752" y="29" textLength="8.5080004">T</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="68.18" y="29" textLength="56.568">reeStore</tspan></text><rect x="87" y="437" width="365" height="72" fill="white"/><rect x="87" y="437" width="365" height="72" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(92 437)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="11" textLength="167.508">+ TraversableTree getTree()</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="29" textLength="297.768">+ TreeEditor edit(NodePath p,NodeTransformer t)</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="47" textLength="118.992">+ boolean success()</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="65" textLength="66.587997">+ void fail()</tspan></text><rect x="87" y="401" width="365" height="36" fill="white"/><rect x="87" y="401" width="365" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(92 401)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="135.26" y="11" textLength="84.480003">&lt;&lt;interface&gt;&gt;</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="143.636" y="29" textLength="8.5080004">T</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="151.064" y="29" textLength="60.3">reeEditor</tspan></text><rect x="35" y="603.75" width="234" height="36" fill="white"/><rect x="35" y="603.75" width="234" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(40 603.75)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="11" textLength="196.40401">+ Evaluation eval(Iterable&lt;Node&gt; </tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="29" textLength="140.808">path,Node child,int pos)</tspan></text><rect x="35" y="585.75" width="234" height="18" fill="white"/><rect x="35" y="585.75" width="234" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(40 585.75)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="80.278" y="11" textLength="63.444">NodePath</tspan></text><ellipse cx="94.125" cy="682.25" rx="18.250029" ry="18.000029" fill="white"/><ellipse cx="94.125" cy="682.25" rx="18.250029" ry="18.000029" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><ellipse cx="206.625" cy="682.25" rx="18.250029" ry="18.000029" fill="white"/><ellipse cx="206.625" cy="682.25" rx="18.250029" ry="18.000029" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><line x1="94.52801" y1="663.95404" x2="119.01353" y2="645.97332" marker-end="url(#FilledArrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><line x1="206.625" y1="664.25" x2="183.43375" y2="646.20646" marker-end="url(#FilledArrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><line x1="269.49999" y1="324.75" x2="269.49999" y2="390.48571" marker-end="url(#Arrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><path d="M 227.09433 198.45006 L 45 297 L 235.93773 400.76126" marker-start="url(#Arrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><line x1="167.90797" y1="578.26664" x2="234.40946" y2="509.35978" marker-start="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><text transform="translate(173.625 716.5)" fill="black"><tspan font-family="Helvetica" font-size="10" font-weight="500" x="7.6430664" y="10" textLength="61.713867">&lt;&lt;interface&gt;&gt;</tspan><tspan font-family="Helvetica" font-size="10" font-weight="500" x=".4165039" y="22" textLength="76.16699">Iterable&lt;Integer&gt;</tspan></text><text transform="translate(53.375 716.5)" fill="black"><tspan font-family="Helvetica" font-size="10" font-weight="500" x="10.1430664" y="10" textLength="61.713867">&lt;&lt;interface&gt;&gt;</tspan><tspan font-family="Helvetica" font-size="10" font-weight="500" x=".3334961" y="22" textLength="6.1083984">T</tspan><tspan font-family="Helvetica" font-size="10" font-weight="500" x="6.0756836" y="22" textLength="75.59082">raverseEvaluator</tspan></text><ellipse cx="401.75" cy="629" rx="18.250029" ry="18.000029" fill="white"/><ellipse cx="401.75" cy="629" rx="18.250029" ry="18.000029" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(363.5 653)" fill="black"><tspan font-family="Helvetica" font-size="10" font-weight="500" x="8.1430664" y="10" textLength="61.713867">&lt;&lt;interface&gt;&gt;</tspan><tspan font-family="Helvetica" font-size="10" font-weight="500" x=".0034179688" y="22" textLength="30.014648">NodeT</tspan><tspan font-family="Helvetica" font-size="10" font-weight="500" x="29.651855" y="22" textLength="48.344727">ransformer</tspan></text><line x1="304.34595" y1="509.361" x2="394.82106" y2="603.7698" marker-end="url(#FilledArrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/></g></g></svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/document/version_control_api.svg	Fri Oct 03 19:03:27 2014 +0900
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="2 2 539 760" width="539pt" height="760pt"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>2012-12-10 15:05Z</dc:date><!-- Produced by OmniGraffle Professional 5.4.4 --></metadata><defs><font-face font-family="Helvetica" font-size="12" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="522.94922" cap-height="717.28516" ascent="770.01953" descent="-229.98047" font-weight="500"><font-face-src><font-face-name name="Helvetica"/></font-face-src></font-face><font-face font-family="Hiragino Kaku Gothic ProN" font-size="12" panose-1="2 11 3 0 0 0 0 0 0 0" units-per-em="1000" underline-position="-60" underline-thickness="63.000004" slope="0" x-height="545" cap-height="766" ascent="880.00183" descent="-120.000244" font-weight="400"><font-face-src><font-face-name name="HiraKakuProN-W3"/></font-face-src></font-face><font-face font-family="Hiragino Kaku Gothic ProN" font-size="12" panose-1="2 11 6 0 0 0 0 0 0 0" units-per-em="1000" underline-position="-60" underline-thickness="117" slope="0" x-height="562" cap-height="784" ascent="880.00183" descent="-120.000244" font-weight="bold"><font-face-src><font-face-name name="HiraKakuProN-W6"/></font-face-src></font-face><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" viewBox="-1 -5 11 10" markerWidth="11" markerHeight="10" color="black"><g><path d="M 8.1142883 0 L 0 -3.0428581 L 0 3.0428581 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/></g></marker><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="Arrow_Marker" viewBox="-1 -5 11 10" markerWidth="11" markerHeight="10" color="black"><g><path d="M 8.1142883 0 L 0 -3.0428581 L 0 3.0428581 Z" fill="none" stroke="currentColor" stroke-width="1"/></g></marker></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><title>キャンバス 1</title><rect fill="white" width="559" height="783"/><g><title>レイヤー 1</title><text transform="translate(11 11)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x=".1328125" y="11" textLength="8.0039062">V</tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x="7.4804688" y="11" textLength="123.38672">ersion Control &amp; Merge</tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x="55.8291" y="25" textLength="19.341797">API</tspan></text><rect x="153.5" y="70" width="252" height="90" fill="white"/><rect x="153.5" y="70" width="252" height="90" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(158.5 70)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="11" textLength="97.980003">+ Tree getTree()</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="29" textLength="140.46001">+ ChangeSet previous()</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="47" textLength="107.244003">+ String ownerid()</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="65" textLength="95.616">+ long revision()</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="83" textLength="228.96">+ Iterable&lt;Command&gt; getCommands()</tspan></text><rect x="153.5" y="52" width="252" height="18" fill="white"/><rect x="153.5" y="52" width="252" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(158.5 52)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="85.672" y="11" textLength="70.656">ChangeSet</tspan></text><rect x="297" y="267.25" width="224" height="84" fill="white"/><rect x="297" y="267.25" width="224" height="84" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(302 267.25)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x="0" y="11" textLength="69.029297">+ Command </tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x="68.373047" y="11" textLength="92.027344">APPEND_CHILD</tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x="0" y="25" textLength="158.390625">+ Command DELETE_CHILD</tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x="0" y="39" textLength="107.70703">+ Command PUT_A</tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x="106.822266" y="39" textLength="58.664062">TTRIBUTE</tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x="0" y="53" textLength="130.38867">+ Command DELETE_A</tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x="129.50391" y="53" textLength="58.664062">TTRIBUTE</tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x="0" y="81" textLength="116.4082">+ NodePath getPath()</tspan></text><rect x="297" y="231.25" width="224" height="36" fill="white"/><rect x="297" y="231.25" width="224" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(302 231.25)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="76.082" y="11" textLength="61.836">&lt;&lt;enum&gt;&gt;</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="74.018" y="29" textLength="65.963997">Command</tspan></text><rect x="87.5" y="495.5" width="384" height="18" fill="white"/><rect x="87.5" y="495.5" width="384" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(92.5 495.5)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="11" textLength="367.452">+ MergeResult merge(TipChangeSet local,ChangeSet remote)</tspan></text><rect x="87.5" y="459.5" width="384" height="36" fill="white"/><rect x="87.5" y="459.5" width="384" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(92.5 459.5)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="147.712" y="11" textLength="78.575996">&lt;&lt;inteface&gt;&gt;</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="163.378" y="29" textLength="47.244">Merger</tspan></text><rect x="34" y="249.25" width="204" height="18" fill="white"/><rect x="34" y="249.25" width="204" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(39 249.25)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="11" textLength="142.296005">+ TreeEditor getEditor()</tspan></text><rect x="34" y="231.25" width="204" height="18" fill="white"/><rect x="34" y="231.25" width="204" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(39 231.25)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="51.544" y="11" textLength="90.912">TipChangeSet</tspan></text><line x1="227.56574" y1="160.328785" x2="154.23106" y2="224.33609" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><line x1="323.25495" y1="160.35986" x2="384.33722" y2="223.6826" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><text transform="translate(395 201)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x=".31054688" y="11" textLength="53.378906">&lt;&lt;uses&gt;&gt;</tspan></text><line x1="267.44511" y1="459.08164" x2="147.64853" y2="276.04749" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><text transform="translate(167.25 429)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x=".31054688" y="11" textLength="53.378906">&lt;&lt;uses&gt;&gt;</tspan></text><rect x="146.5" y="602" width="266" height="18" fill="white"/><rect x="146.5" y="602" width="266" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(151.5 602)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="11" textLength="198.552">+ MergeResult.Status getStatus()</tspan></text><rect x="146.5" y="566" width="266" height="36" fill="white"/><rect x="146.5" y="566" width="266" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(151.5 566)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="88.712" y="11" textLength="78.575996">&lt;&lt;inteface&gt;&gt;</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="87.044" y="29" textLength="81.912003">MergeResult</tspan></text><rect x="167.25" y="702" width="224.5" height="36" fill="white"/><rect x="167.25" y="702" width="224.5" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(172.25 702)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="11" textLength="191.58">+ MergeResult.Status SUCCESS</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="400" x="0" y="29" textLength="194.556">+ MergeResult.Status CONFLICT</tspan></text><rect x="167.25" y="666" width="224.5" height="36" fill="white"/><rect x="167.25" y="666" width="224.5" height="36" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(172.25 666)" fill="black"><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="76.332" y="11" textLength="61.836">&lt;&lt;enum&gt;&gt;</tspan><tspan font-family="Hiragino Kaku Gothic ProN" font-size="12" font-weight="bold" x="43.776" y="29" textLength="126.948">MergeResult.Status</tspan></text><line x1="279.49998" y1="459" x2="279.49998" y2="170.51429" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><line x1="279.50001" y1="514" x2="279.50001" y2="555.4857" marker-end="url(#Arrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><line x1="279.49999" y1="620.5" x2="279.49999" y2="655.4857" marker-end="url(#Arrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><text transform="translate(292 532.75)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x=".31054688" y="11" textLength="53.378906">&lt;&lt;uses&gt;&gt;</tspan></text><text transform="translate(297 639.25)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x=".31054688" y="11" textLength="53.378906">&lt;&lt;uses&gt;&gt;</tspan></text></g></g></svg>