forked from MatteoCerioni/blockly2scafi
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathblockly2scafi.drawio
182 lines (182 loc) · 28.1 KB
/
blockly2scafi.drawio
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
<mxfile host="app.diagrams.net" modified="2022-05-29T15:51:52.776Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36" etag="HkAPNejlOkFGbp4joMFu" version="18.0.7" type="github" pages="2">
<diagram id="RvHfQZCGcCcL5Ybzd2NQ" name="Classes">
<mxGraphModel dx="2792" dy="632" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="lZBlm6j0ylisTsFuR0oZ-8" value="retrieve" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endArrow=none;endFill=0;" parent="1" source="lZBlm6j0ylisTsFuR0oZ-1" target="lZBlm6j0ylisTsFuR0oZ-5" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>Generable</b></p><hr size="1"><p style="margin:0px;margin-left:4px;">+ generator(): Generator</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="1" vertex="1">
<mxGeometry x="210" y="220" width="176" height="70" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=none;endFill=0;startSize=12;endSize=12;" parent="1" source="lZBlm6j0ylisTsFuR0oZ-5" target="lZBlm6j0ylisTsFuR0oZ-6" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-5" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>Generator</b><br></p><hr size="1"><p style="margin:0px;margin-left:4px;">+ generate(block: Block): (String, Order)<br></p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="1" vertex="1">
<mxGeometry x="450" y="220" width="230" height="70" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-6" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>Order</b></p><p style="margin:0px;margin-left:4px;"><br></p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="1" vertex="1">
<mxGeometry x="505" y="340" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=block;endFill=1;endSize=12;" parent="1" source="lZBlm6j0ylisTsFuR0oZ-9" target="lZBlm6j0ylisTsFuR0oZ-1" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-9" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>BlockType</b></p><hr size="1"><p style="margin:0px;margin-left:4px;">+ name(): String</p><p style="margin:0px;margin-left:4px;">+ order(): Order</p><p style="margin:0px;margin-left:4px;">+ fieldNames(): Seq[String]</p><p style="margin:0px;margin-left:4px;">+ inputNames(): Seq[String]</p><p style="margin:0px;margin-left:4px;"><br></p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="1" vertex="1">
<mxGeometry x="194.5" y="370" width="207" height="120" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endSize=12;" parent="1" source="lZBlm6j0ylisTsFuR0oZ-11" target="lZBlm6j0ylisTsFuR0oZ-9" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-11" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>ValueBlockType</b></p><hr size="1"><p style="margin:0px;margin-left:4px;">// Code instruction that return a&nbsp;<br>value<br></p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="1" vertex="1">
<mxGeometry x="90" y="560" width="200" height="90" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=block;endFill=1;endSize=12;" parent="1" source="lZBlm6j0ylisTsFuR0oZ-12" target="lZBlm6j0ylisTsFuR0oZ-9" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-12" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>UnitBlockType</b></p><hr size="1"><p style="margin:0px;margin-left:4px;"><span style="background-color: initial;">// Code instruction that doesn't&nbsp;</span><br></p><p style="margin:0px;margin-left:4px;">return anything<br></p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="1" vertex="1">
<mxGeometry x="320" y="560" width="200" height="90" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;startArrow=diamond;startFill=0;startSize=12;" parent="1" source="lZBlm6j0ylisTsFuR0oZ-16" target="lZBlm6j0ylisTsFuR0oZ-11" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;startArrow=diamond;startFill=0;endSize=6;startSize=12;endArrow=none;endFill=0;" parent="1" source="lZBlm6j0ylisTsFuR0oZ-16" target="lZBlm6j0ylisTsFuR0oZ-12" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-16" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>Category</b><br></p><hr size="1"><p style="margin:0px;margin-left:4px;">+ name(): String<br></p><p style="margin:0px;margin-left:4px;">+ unitBlockTypes(): Seq[UnitBlockType]</p><p style="margin:0px;margin-left:4px;">+ valueBlockTypes(): Seq[ValueBlockType]</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="1" vertex="1">
<mxGeometry x="184" y="770" width="246" height="100" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=block;endFill=1;startSize=12;endSize=12;" parent="1" source="lZBlm6j0ylisTsFuR0oZ-19" target="lZBlm6j0ylisTsFuR0oZ-12" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-19" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>AggregateProgramBlockType</b></p><hr size="1"><p style="margin:0px;margin-left:4px;"><br></p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="1" vertex="1">
<mxGeometry x="570" y="510" width="200" height="40" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=block;endFill=1;startSize=12;endSize=12;" parent="1" source="lZBlm6j0ylisTsFuR0oZ-20" target="lZBlm6j0ylisTsFuR0oZ-12" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-20" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>OutputBlockType</b></p><hr size="1"><p style="margin:0px;margin-left:4px;"><br></p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="1" vertex="1">
<mxGeometry x="570" y="560" width="200" height="40" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=block;endFill=1;startSize=12;endSize=12;" parent="1" source="lZBlm6j0ylisTsFuR0oZ-21" target="lZBlm6j0ylisTsFuR0oZ-12" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-21" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>DefineBlockType</b></p><hr size="1"><p style="margin:0px;margin-left:4px;"><br></p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="1" vertex="1">
<mxGeometry x="570" y="610" width="200" height="40" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-27" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=block;endFill=1;startSize=12;endSize=12;" parent="1" source="lZBlm6j0ylisTsFuR0oZ-22" target="lZBlm6j0ylisTsFuR0oZ-12" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-22" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>...</b></p><hr size="1"><p style="margin:0px;margin-left:4px;"><br></p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="1" vertex="1">
<mxGeometry x="570" y="660" width="200" height="40" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=block;endFill=1;startSize=12;endSize=12;" parent="1" source="lZBlm6j0ylisTsFuR0oZ-28" target="lZBlm6j0ylisTsFuR0oZ-11" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-28" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>LedAllToBlockType</b></p><hr size="1"><p style="margin:0px;margin-left:4px;"><br></p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="1" vertex="1">
<mxGeometry x="-160" y="510" width="200" height="40" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-35" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=block;endFill=1;startSize=12;endSize=12;" parent="1" source="lZBlm6j0ylisTsFuR0oZ-29" target="lZBlm6j0ylisTsFuR0oZ-11" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-29" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>MuxBlockType</b></p><hr size="1"><p style="margin:0px;margin-left:4px;"><br></p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="1" vertex="1">
<mxGeometry x="-160" y="560" width="200" height="40" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-36" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=block;endFill=1;startSize=12;endSize=12;" parent="1" source="lZBlm6j0ylisTsFuR0oZ-30" target="lZBlm6j0ylisTsFuR0oZ-11" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-30" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>NbrBlockType</b></p><hr size="1"><p style="margin:0px;margin-left:4px;"><br></p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="1" vertex="1">
<mxGeometry x="-160" y="610" width="200" height="40" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=block;endFill=1;startSize=12;endSize=12;" parent="1" source="lZBlm6j0ylisTsFuR0oZ-31" target="lZBlm6j0ylisTsFuR0oZ-11" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lZBlm6j0ylisTsFuR0oZ-31" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>...</b></p><hr size="1"><p style="margin:0px;margin-left:4px;"><br></p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="1" vertex="1">
<mxGeometry x="-160" y="660" width="200" height="40" as="geometry" />
</mxCell>
<mxCell id="47hrpn-MGwgMzPTtNRCV-1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>AbstractGenerableBuilder</b></p><hr size="1"><p style="margin:0px;margin-left:4px;">+ withPrepend(prepend: String): this</p><p style="margin:0px;margin-left:4px;">+ withAppend(append: String): this</p><p style="margin:0px;margin-left:4px;">+ build(): Generable</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="1" vertex="1">
<mxGeometry x="-860" y="920" width="215" height="100" as="geometry" />
</mxCell>
<mxCell id="47hrpn-MGwgMzPTtNRCV-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=block;endFill=1;startSize=12;endSize=12;" parent="1" source="47hrpn-MGwgMzPTtNRCV-2" target="47hrpn-MGwgMzPTtNRCV-3" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="47hrpn-MGwgMzPTtNRCV-2" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>GenerableInput</b></p><hr size="1"><p style="margin:0px;margin-left:4px;">+ inputName: String<br></p><p style="margin:0px;margin-left:4px;">+ prepend: String</p><p style="margin:0px;margin-left:4px;">+ append: String</p><p style="margin:0px;margin-left:4px;">+ internalOrder: Order</p><p style="margin:0px;margin-left:4px;">+ externalOrder: Order</p><p style="margin:0px;margin-left:4px;">+ builder(): GenerableInputBuilder</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="1" vertex="1">
<mxGeometry x="-1107.5" y="510" width="190" height="140" as="geometry" />
</mxCell>
<mxCell id="47hrpn-MGwgMzPTtNRCV-3" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>Generable</b></p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="1" vertex="1">
<mxGeometry x="-812.5" y="380" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="47hrpn-MGwgMzPTtNRCV-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=block;endFill=1;startSize=12;endSize=12;" parent="1" source="47hrpn-MGwgMzPTtNRCV-5" target="47hrpn-MGwgMzPTtNRCV-3" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="47hrpn-MGwgMzPTtNRCV-5" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>GenerableMultiInput</b></p><hr size="1"><p style="margin:0px;margin-left:4px;">+ inputNames: Seq[String]<br></p><p style="margin:0px;margin-left:4px;">+ prepend: String</p><p style="margin:0px;margin-left:4px;">+ append: String</p><p style="margin:0px;margin-left:4px;">+ join: String</p><p style="margin:0px;margin-left:4px;">+ internalOrder: Order</p><p style="margin:0px;margin-left:4px;">+ externalOrder: Order</p><p style="margin:0px;margin-left:4px;">+ builder(): GenerableMultiInputBuilder</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="1" vertex="1">
<mxGeometry x="-867.5" y="510" width="230" height="150" as="geometry" />
</mxCell>
<mxCell id="47hrpn-MGwgMzPTtNRCV-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=block;endFill=1;startSize=12;endSize=12;" parent="1" source="47hrpn-MGwgMzPTtNRCV-7" target="47hrpn-MGwgMzPTtNRCV-3" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="47hrpn-MGwgMzPTtNRCV-7" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>GenerableField</b></p><hr size="1"><p style="margin:0px;margin-left:4px;">+ fieldName: String<br></p><p style="margin:0px;margin-left:4px;">+ prepend: String</p><p style="margin:0px;margin-left:4px;">+ append: String</p><p style="margin:0px;margin-left:4px;">+ order: Order</p><p style="margin:0px;margin-left:4px;">+ builder(): GenerableFieldBuilder</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="1" vertex="1">
<mxGeometry x="-577.5" y="510" width="190" height="140" as="geometry" />
</mxCell>
<mxCell id="47hrpn-MGwgMzPTtNRCV-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=block;endFill=1;startSize=12;endSize=12;" parent="1" source="47hrpn-MGwgMzPTtNRCV-9" target="47hrpn-MGwgMzPTtNRCV-1" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="47hrpn-MGwgMzPTtNRCV-15" value="build" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=none;endFill=0;startSize=12;endSize=12;" parent="1" source="47hrpn-MGwgMzPTtNRCV-9" target="47hrpn-MGwgMzPTtNRCV-2" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="47hrpn-MGwgMzPTtNRCV-9" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>GenerableInputBuilder</b></p><hr size="1"><p style="margin:0px;margin-left:4px;">+ withInputName(inputName: String): this<br></p><p style="margin:0px;margin-left:4px;">+ withInternalOrder(internalOrder: Order): this</p><p style="margin:0px;margin-left:4px;">+ withExternalOrder(externalOrder: Order): this</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="1" vertex="1">
<mxGeometry x="-1150" y="730" width="275" height="100" as="geometry" />
</mxCell>
<mxCell id="47hrpn-MGwgMzPTtNRCV-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=block;endFill=1;startSize=12;endSize=12;" parent="1" source="47hrpn-MGwgMzPTtNRCV-11" target="47hrpn-MGwgMzPTtNRCV-9" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="47hrpn-MGwgMzPTtNRCV-16" value="build" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=none;endFill=0;startSize=12;endSize=12;" parent="1" source="47hrpn-MGwgMzPTtNRCV-11" target="47hrpn-MGwgMzPTtNRCV-5" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="47hrpn-MGwgMzPTtNRCV-11" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>GenerableMultiInputBuilder</b></p><hr size="1"><p style="margin:0px;margin-left:4px;">+ withJoin(join: String): this</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="1" vertex="1">
<mxGeometry x="-837.5" y="740" width="170" height="80" as="geometry" />
</mxCell>
<mxCell id="47hrpn-MGwgMzPTtNRCV-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=block;endFill=1;startSize=12;endSize=12;" parent="1" source="47hrpn-MGwgMzPTtNRCV-13" target="47hrpn-MGwgMzPTtNRCV-1" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="47hrpn-MGwgMzPTtNRCV-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=none;endFill=0;startSize=12;endSize=12;" parent="1" source="47hrpn-MGwgMzPTtNRCV-13" target="47hrpn-MGwgMzPTtNRCV-7" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="47hrpn-MGwgMzPTtNRCV-18" value="build" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="47hrpn-MGwgMzPTtNRCV-17" vertex="1" connectable="0">
<mxGeometry x="-0.249" y="-2" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="47hrpn-MGwgMzPTtNRCV-13" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>GenerableFieldBuilder</b></p><hr size="1"><p style="margin:0px;margin-left:4px;">+ withFieldName(fieldName: String): this</p><p style="margin:0px;margin-left:4px;">+ withOrder(order: Order): this</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="1" vertex="1">
<mxGeometry x="-620" y="730" width="275" height="100" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
<diagram id="Lxf0rR5bvW8vAh9EXkhi" name="Configuration">
<mxGraphModel dx="1422" dy="790" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="ug78O1N0SG4-sihtugbY-6" value="App" style="verticalAlign=top;align=left;spacingTop=8;spacingLeft=2;spacingRight=12;shape=cube;size=10;direction=south;fontStyle=4;html=1;" parent="1" vertex="1">
<mxGeometry x="202.5" y="145" width="265" height="240" as="geometry" />
</mxCell>
<mxCell id="ug78O1N0SG4-sihtugbY-7" value="Blockly Developer Tools" style="verticalAlign=top;align=left;spacingTop=8;spacingLeft=2;spacingRight=12;shape=cube;size=10;direction=south;fontStyle=4;html=1;" parent="1" vertex="1">
<mxGeometry x="460" y="145" width="265" height="240" as="geometry" />
</mxCell>
<mxCell id="ug78O1N0SG4-sihtugbY-2" value="library.xml" style="html=1;" parent="1" vertex="1">
<mxGeometry x="580" y="240" width="110" height="50" as="geometry" />
</mxCell>
<mxCell id="ug78O1N0SG4-sihtugbY-3" value="library.json" style="html=1;" parent="1" vertex="1">
<mxGeometry x="280" y="170" width="110" height="50" as="geometry" />
</mxCell>
<mxCell id="ug78O1N0SG4-sihtugbY-4" value="toolbox.xml" style="html=1;" parent="1" vertex="1">
<mxGeometry x="414" y="240" width="110" height="50" as="geometry" />
</mxCell>
<mxCell id="ug78O1N0SG4-sihtugbY-5" value="initialWorkspace.xml" style="html=1;" parent="1" vertex="1">
<mxGeometry x="270" y="310" width="130" height="50" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>