1 line
No EOL
22 KiB
XML
1 line
No EOL
22 KiB
XML
<svg aria-roledescription="classDiagram" role="graphics-document document" viewBox="0 0 1425.30078125 642" style="max-width: 1425.3px; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="100%" id="my-svg"><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#ccc;}#my-svg .error-icon{fill:#a44141;}#my-svg .error-text{fill:#ddd;stroke:#ddd;}#my-svg .edge-thickness-normal{stroke-width:2px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:lightgrey;stroke:lightgrey;}#my-svg .marker.cross{stroke:lightgrey;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg g.classGroup text{fill:#81B1DB;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#my-svg g.classGroup text .title{font-weight:bolder;}#my-svg .nodeLabel,#my-svg .edgeLabel{color:#e0dfdf;}#my-svg .edgeLabel .label rect{fill:#1f2020;}#my-svg .label text{fill:#e0dfdf;}#my-svg .edgeLabel .label span{background:#1f2020;}#my-svg .classTitle{font-weight:bolder;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#1f2020;stroke:#81B1DB;stroke-width:1px;}#my-svg .divider{stroke:#81B1DB;stroke-width:1;}#my-svg g.clickable{cursor:pointer;}#my-svg g.classGroup rect{fill:#1f2020;stroke:#81B1DB;}#my-svg g.classGroup line{stroke:#81B1DB;stroke-width:1;}#my-svg .classLabel .box{stroke:none;stroke-width:0;fill:#1f2020;opacity:0.5;}#my-svg .classLabel .label{fill:#81B1DB;font-size:10px;}#my-svg .relation{stroke:lightgrey;stroke-width:1;fill:none;}#my-svg .dashed-line{stroke-dasharray:3;}#my-svg .dotted-line{stroke-dasharray:1 2;}#my-svg #compositionStart,#my-svg .composition{fill:lightgrey!important;stroke:lightgrey!important;stroke-width:1;}#my-svg #compositionEnd,#my-svg .composition{fill:lightgrey!important;stroke:lightgrey!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:lightgrey!important;stroke:lightgrey!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:lightgrey!important;stroke:lightgrey!important;stroke-width:1;}#my-svg #extensionStart,#my-svg .extension{fill:transparent!important;stroke:lightgrey!important;stroke-width:1;}#my-svg #extensionEnd,#my-svg .extension{fill:transparent!important;stroke:lightgrey!important;stroke-width:1;}#my-svg #aggregationStart,#my-svg .aggregation{fill:transparent!important;stroke:lightgrey!important;stroke-width:1;}#my-svg #aggregationEnd,#my-svg .aggregation{fill:transparent!important;stroke:lightgrey!important;stroke-width:1;}#my-svg #lollipopStart,#my-svg .lollipop{fill:#1f2020!important;stroke:lightgrey!important;stroke-width:1;}#my-svg #lollipopEnd,#my-svg .lollipop{fill:#1f2020!important;stroke:lightgrey!important;stroke-width:1;}#my-svg .edgeTerminals{font-size:11px;line-height:initial;}#my-svg .classTitleText{text-anchor:middle;font-size:18px;fill:#ccc;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><defs><marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="18" class="marker aggregation classDiagram" id="my-svg_classDiagram-aggregationStart"><path d="M 18,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="1" class="marker aggregation classDiagram" id="my-svg_classDiagram-aggregationEnd"><path d="M 18,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="18" class="marker extension classDiagram" id="my-svg_classDiagram-extensionStart"><path d="M 1,7 L18,13 V 1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="1" class="marker extension classDiagram" id="my-svg_classDiagram-extensionEnd"><path d="M 1,1 V 13 L18,7 Z"/></marker></defs><defs><marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="18" class="marker composition classDiagram" id="my-svg_classDiagram-compositionStart"><path d="M 18,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="1" class="marker composition classDiagram" id="my-svg_classDiagram-compositionEnd"><path d="M 18,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="6" class="marker dependency classDiagram" id="my-svg_classDiagram-dependencyStart"><path d="M 5,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="13" class="marker dependency classDiagram" id="my-svg_classDiagram-dependencyEnd"><path d="M 18,7 L9,13 L14,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="13" class="marker lollipop classDiagram" id="my-svg_classDiagram-lollipopStart"><circle r="6" cy="7" cx="7" fill="transparent" stroke="black"/></marker></defs><defs><marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="1" class="marker lollipop classDiagram" id="my-svg_classDiagram-lollipopEnd"><circle r="6" cy="7" cx="7" fill="transparent" stroke="black"/></marker></defs><g class="root"><g class="clusters"/><g class="edgePaths"><path style="fill:none" class="edge-pattern-dashed relation" id="id_Cell_XLModel_1" d="M441.176,94.107L390.648,104.422C340.12,114.738,239.064,135.369,188.536,149.851C138.008,164.333,138.008,172.667,138.008,176.833L138.008,181"/><path marker-start="url(#my-svg_classDiagram-extensionStart)" style="fill:none" class="edge-pattern-dashed relation" id="id_Cell_BombCell_2" d="M459.412,141.345L455.935,143.788C452.457,146.23,445.502,151.115,442.024,185.224C438.547,219.333,438.547,282.667,438.547,314.333L438.547,346"/><path marker-start="url(#my-svg_classDiagram-extensionStart)" style="fill:none" class="edge-pattern-dashed relation" id="id_Cell_ExpressionCell_3" d="M698.624,131.75L707.514,135.792C716.403,139.833,734.182,147.917,743.071,183.625C751.961,219.333,751.961,282.667,751.961,314.333L751.961,346"/><path marker-start="url(#my-svg_classDiagram-extensionStart)" style="fill:none" class="edge-pattern-dashed relation" id="id_Cell_CommentCell_4" d="M699.995,92.474L763.726,103.062C827.458,113.649,954.92,134.825,1018.651,177.079C1082.383,219.333,1082.383,282.667,1082.383,314.333L1082.383,346"/></g><g class="edgeLabels"><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g></g><g class="nodes"><g transform="translate(561.70703125, 69.5)" data-id="Cell" data-node="true" id="classId-Cell-0" class="node default"><rect height="123" width="241.0625" y="-61.5" x="-120.53125" class="outer title-state" style=""/><line y2="-9.5" y1="-9.5" x2="120.53125" x1="-120.53125" class="divider"/><line y2="6.5" y1="6.5" x2="120.53125" x1="-120.53125" class="divider"/><g class="label"><foreignObject transform="translate( -39.5859375, -54)" height="18" width="79.171875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">«interface»</span></div></foreignObject><foreignObject transform="translate( -14.671875, -32)" height="18" width="29.34375" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Cell</span></div></foreignObject><foreignObject transform="translate( -113.03125, 14)" height="18" width="226.0625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+double cellValue(Environment)</span></div></foreignObject><foreignObject transform="translate( -113.03125, 36)" height="18" width="155.78125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+String displayValue()</span></div></foreignObject></g></g><g transform="translate(138.0078125, 407.5)" data-id="XLModel" data-node="true" id="classId-XLModel-1" class="node default"><rect height="453" width="260.015625" y="-226.5" x="-130.0078125" class="outer title-state" style=""/><line y2="-196.5" y1="-196.5" x2="130.0078125" x1="-130.0078125" class="divider"/><line y2="-180.5" y1="-180.5" x2="130.0078125" x1="-130.0078125" class="divider"/><g class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"></span></div></foreignObject><foreignObject transform="translate( -33.3359375, -219)" height="18" width="66.671875" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">XLModel</span></div></foreignObject><foreignObject transform="translate( -122.5078125, -173)" height="18" width="150.75"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+XLModel XLModel()</span></div></foreignObject><foreignObject transform="translate( -122.5078125, -151)" height="18" width="200.53125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+String getCurrentAddress()</span></div></foreignObject><foreignObject transform="translate( -122.5078125, -129)" height="18" width="228.984375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+void setCurrentAddress(String)</span></div></foreignObject><foreignObject transform="translate( -122.5078125, -107)" height="18" width="221.890625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+Optional<Cell> getCell(String)</span></div></foreignObject><foreignObject transform="translate( -122.5078125, -85)" height="18" width="176.546875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+boolean remove(String)</span></div></foreignObject><foreignObject transform="translate( -122.5078125, -63)" height="18" width="168.53125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+void add(String,String)</span></div></foreignObject><foreignObject transform="translate( -122.5078125, -41)" height="18" width="133.84375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+String getStatus()</span></div></foreignObject><foreignObject transform="translate( -122.5078125, -19)" height="18" width="133.84375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+void clearStatus()</span></div></foreignObject><foreignObject transform="translate( -122.5078125, 3)" height="18" width="116.046875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+void clearCell()</span></div></foreignObject><foreignObject transform="translate( -122.5078125, 25)" height="18" width="106.265625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+void clearAll()</span></div></foreignObject><foreignObject transform="translate( -122.5078125, 47)" height="18" width="125.84375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+void load(String)</span></div></foreignObject><foreignObject transform="translate( -122.5078125, 69)" height="18" width="129.390625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+void save(String)</span></div></foreignObject><foreignObject transform="translate( -122.5078125, 91)" height="18" width="228.71875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+String getAddressValue(String)</span></div></foreignObject><foreignObject transform="translate( -122.5078125, 113)" height="18" width="245.015625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+String getAddressContent(String)</span></div></foreignObject><foreignObject transform="translate( -122.5078125, 135)" height="18" width="210.359375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+boolean containsKey(String)</span></div></foreignObject><foreignObject transform="translate( -122.5078125, 157)" height="18" width="152.546875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+double value(String)</span></div></foreignObject><foreignObject transform="translate( -122.5078125, 179)" height="18" width="212.09375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+void addObserver(Observer)</span></div></foreignObject><foreignObject transform="translate( -122.5078125, 201)" height="18" width="165.84375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+void notifyObservers()</span></div></foreignObject></g></g><g transform="translate(438.546875, 407.5)" data-id="BombCell" data-node="true" id="classId-BombCell-2" class="node default"><rect height="123" width="241.0625" y="-61.5" x="-120.53125" class="outer title-state" style=""/><line y2="-31.5" y1="-31.5" x2="120.53125" x1="-120.53125" class="divider"/><line y2="-15.5" y1="-15.5" x2="120.53125" x1="-120.53125" class="divider"/><g class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"></span></div></foreignObject><foreignObject transform="translate( -37.3359375, -54)" height="18" width="74.671875" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">BombCell</span></div></foreignObject><foreignObject transform="translate( -113.03125, -8)" height="18" width="163.171875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+BombCell BombCell()</span></div></foreignObject><foreignObject transform="translate( -113.03125, 14)" height="18" width="226.0625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+double cellValue(Environment)</span></div></foreignObject><foreignObject transform="translate( -113.03125, 36)" height="18" width="155.78125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+String displayValue()</span></div></foreignObject></g></g><g transform="translate(905.10546875, 69.5)" data-id="XLBufferedReader" data-node="true" id="classId-XLBufferedReader-3" class="node default"><rect height="101" width="345.734375" y="-50.5" x="-172.8671875" class="outer title-state" style=""/><line y2="-20.5" y1="-20.5" x2="172.8671875" x1="-172.8671875" class="divider"/><line y2="-4.5" y1="-4.5" x2="172.8671875" x1="-172.8671875" class="divider"/><g class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"></span></div></foreignObject><foreignObject transform="translate( -70.2421875, -43)" height="18" width="140.484375" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">XLBufferedReader</span></div></foreignObject><foreignObject transform="translate( -165.3671875, 3)" height="18" width="330.734375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+XLBufferedReader XLBufferedReader(String)</span></div></foreignObject><foreignObject transform="translate( -165.3671875, 25)" height="18" width="207.671875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+void load(Map<String,Cell>)</span></div></foreignObject></g></g><g transform="translate(1272.63671875, 69.5)" data-id="XLPrintStream" data-node="true" id="classId-XLPrintStream-4" class="node default"><rect height="101" width="289.328125" y="-50.5" x="-144.6640625" class="outer title-state" style=""/><line y2="-20.5" y1="-20.5" x2="144.6640625" x1="-144.6640625" class="divider"/><line y2="-4.5" y1="-4.5" x2="144.6640625" x1="-144.6640625" class="divider"/><g class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"></span></div></foreignObject><foreignObject transform="translate( -55.5703125, -43)" height="18" width="111.140625" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">XLPrintStream</span></div></foreignObject><foreignObject transform="translate( -137.1640625, 3)" height="18" width="274.328125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+XLPrintStream XLPrintStream(String)</span></div></foreignObject><foreignObject transform="translate( -137.1640625, 25)" height="18" width="260.140625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+void save(Set<Entry>String,Cell<>)</span></div></foreignObject></g></g><g transform="translate(751.9609375, 407.5)" data-id="ExpressionCell" data-node="true" id="classId-ExpressionCell-5" class="node default"><rect height="123" width="285.765625" y="-61.5" x="-142.8828125" class="outer title-state" style=""/><line y2="-31.5" y1="-31.5" x2="142.8828125" x1="-142.8828125" class="divider"/><line y2="-15.5" y1="-15.5" x2="142.8828125" x1="-142.8828125" class="divider"/><g class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"></span></div></foreignObject><foreignObject transform="translate( -57.8046875, -54)" height="18" width="115.609375" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">ExpressionCell</span></div></foreignObject><foreignObject transform="translate( -135.3828125, -8)" height="18" width="270.765625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+ExpressionCell ExpressionCell(Expr)</span></div></foreignObject><foreignObject transform="translate( -135.3828125, 14)" height="18" width="226.0625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+double cellValue(Environment)</span></div></foreignObject><foreignObject transform="translate( -135.3828125, 36)" height="18" width="155.78125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+String displayValue()</span></div></foreignObject></g></g><g transform="translate(1082.3828125, 407.5)" data-id="CommentCell" data-node="true" id="classId-CommentCell-6" class="node default"><rect height="123" width="275.078125" y="-61.5" x="-137.5390625" class="outer title-state" style=""/><line y2="-31.5" y1="-31.5" x2="137.5390625" x1="-137.5390625" class="divider"/><line y2="-15.5" y1="-15.5" x2="137.5390625" x1="-137.5390625" class="divider"/><g class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"></span></div></foreignObject><foreignObject transform="translate( -51.5625, -54)" height="18" width="103.125" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">CommentCell</span></div></foreignObject><foreignObject transform="translate( -130.0390625, -8)" height="18" width="260.078125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+CommentCell CommentCell(String)</span></div></foreignObject><foreignObject transform="translate( -130.0390625, 14)" height="18" width="226.0625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+double cellValue(Environment)</span></div></foreignObject><foreignObject transform="translate( -130.0390625, 36)" height="18" width="155.78125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">+String displayValue()</span></div></foreignObject></g></g></g></g></g></svg> |