-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathneo4j-schema.drawio
More file actions
115 lines (115 loc) · 20.8 KB
/
Copy pathneo4j-schema.drawio
File metadata and controls
115 lines (115 loc) · 20.8 KB
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
<mxfile host="Electron">
<diagram id="codeanalyzer-java-neo4j" name="Neo4j schema">
<mxGraphModel dx="2866" dy="1541" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="2600" pageHeight="1300" math="0" shadow="0" adaptiveColors="auto">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="title" parent="1" style="text;html=1;align=left;verticalAlign=middle;fontSize=20;fontFamily=IBM Plex Sans;fontColor=light-dark(#161616,#f4f4f4);" value="<b>codeanalyzer-java — Neo4j property-graph schema</b><br><font color="#6f6f6f">all labels J-prefixed · all rel types J_-prefixed · contract = schema.neo4j.json · SCHEMA_VERSION 1.0.0 · 16 node labels · 20 relationship types · --emit neo4j</font>" vertex="1">
<mxGeometry height="50" width="1100" x="40" y="20" as="geometry" />
</mxCell>
<mxCell id="legend" parent="1" style="rounded=8;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacingLeft=12;spacingRight=10;spacingTop=8;spacingBottom=8;fontFamily=IBM Plex Sans;fontSize=12;fontColor=light-dark(#161616,#f4f4f4);fillColor=light-dark(#ffffff,#1a1a1a);strokeColor=light-dark(#8d8d8d,#6f6f6f);" value="<b>Legend</b><hr>→ relationship (J_-prefixed, type on the edge)<br>↺ self-loop = recursive<br><br><b>Identity</b><br>:JType & :JCallable share the :JSymbol merge<br>label (key = id). JType.id = FQN;<br>JCallable.id = FQN#signature.<br><br><b>Provenance</b><br>every unit-owned node carries _module (= file_key)<br>so the Bolt writer replaces exactly one unit's<br>subgraph; :JPackage / :JAnnotation are shared.<br><br><b>Tiers</b><br>red = root · blue = file · teal = :JSymbol decl<br>gray = leaf records · purple = shared (no _module)" vertex="1">
<mxGeometry height="330" width="330" x="40" y="100" as="geometry" />
</mxCell>
<mxCell id="app" parent="1" style="rounded=8;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacingLeft=12;spacingRight=10;spacingTop=8;spacingBottom=8;fontFamily=IBM Plex Sans;fontSize=12;fontColor=light-dark(#161616,#f4f4f4);fillColor=light-dark(#fff1f1,#4b1a1f);strokeColor=light-dark(#da1e28,#fa4d56);" value="<b>:JApplication</b> «root»<hr>name (key)<br>schema_version" vertex="1">
<mxGeometry height="80" width="300" x="40" y="482" as="geometry" />
</mxCell>
<mxCell id="cu" parent="1" style="rounded=8;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacingLeft=12;spacingRight=10;spacingTop=8;spacingBottom=8;fontFamily=IBM Plex Sans;fontSize=12;fontColor=light-dark(#161616,#f4f4f4);fillColor=light-dark(#edf5ff,#1c2a3f);strokeColor=light-dark(#0f62fe,#4589ff);" value="<b>:JCompilationUnit</b> «file»<hr>file_key (key)<br>file_path · package_name<br>content_hash · comment_count<br>is_modified · _module" vertex="1">
<mxGeometry height="115" width="320" x="480" y="465" as="geometry" />
</mxCell>
<mxCell id="type" parent="1" style="rounded=8;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacingLeft=12;spacingRight=10;spacingTop=8;spacingBottom=8;fontFamily=IBM Plex Sans;fontSize=12;fontColor=light-dark(#161616,#f4f4f4);fillColor=light-dark(#d9fbfb,#0c2b2b);strokeColor=light-dark(#007d79,#08bdba);" value="<b>:JType</b> :JSymbol «recursive»<hr>id = fqn (key)<br>name · kind (class/interface/enum/<br>annotation/record)<br>modifiers[] · annotations[]<br>extends_list[] · implements_list[]<br>parent_type · docstring · _module" vertex="1">
<mxGeometry height="150" width="320" x="940" y="447" as="geometry" />
</mxCell>
<mxCell id="callable" parent="1" style="rounded=8;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacingLeft=12;spacingRight=10;spacingTop=8;spacingBottom=8;fontFamily=IBM Plex Sans;fontSize=12;fontColor=light-dark(#161616,#f4f4f4);fillColor=light-dark(#d9fbfb,#0c2b2b);strokeColor=light-dark(#007d79,#08bdba);" value="<b>:JCallable</b> :JSymbol «recursive»<hr>id = fqn#signature (key)<br>name · signature · return_type<br>file_path · parameter_types[]<br>modifiers[] · annotations[] · code<br>cyclomatic_complexity · docstring · _module" vertex="1">
<mxGeometry height="150" width="320" x="1400" y="140" as="geometry" />
</mxCell>
<mxCell id="field" parent="1" style="rounded=8;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacingLeft=12;spacingRight=10;spacingTop=8;spacingBottom=8;fontFamily=IBM Plex Sans;fontSize=12;fontColor=light-dark(#161616,#f4f4f4);fillColor=light-dark(#f4f4f4,#262626);strokeColor=light-dark(#8d8d8d,#6f6f6f);" value="<b>:JField</b><hr>id (key) · name · type<br>modifiers[] · annotations[] · variables[]<br>variable_initializers_json<br>docstring · _module" vertex="1">
<mxGeometry height="110" width="320" x="1400" y="335" as="geometry" />
</mxCell>
<mxCell id="enumc" parent="1" style="rounded=8;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacingLeft=12;spacingRight=10;spacingTop=8;spacingBottom=8;fontFamily=IBM Plex Sans;fontSize=12;fontColor=light-dark(#161616,#f4f4f4);fillColor=light-dark(#f4f4f4,#262626);strokeColor=light-dark(#8d8d8d,#6f6f6f);" value="<b>:JEnumConstant</b><hr>id (key) · name<br>arguments[] · _module" vertex="1">
<mxGeometry height="80" width="320" x="1400" y="490" as="geometry" />
</mxCell>
<mxCell id="record" parent="1" style="rounded=8;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacingLeft=12;spacingRight=10;spacingTop=8;spacingBottom=8;fontFamily=IBM Plex Sans;fontSize=12;fontColor=light-dark(#161616,#f4f4f4);fillColor=light-dark(#f4f4f4,#262626);strokeColor=light-dark(#8d8d8d,#6f6f6f);" value="<b>:JRecordComponent</b><hr>id (key) · name · type<br>modifiers[] · annotations[]<br>default_value · is_var_args<br>docstring · _module" vertex="1">
<mxGeometry height="115" width="320" x="1400" y="615" as="geometry" />
</mxCell>
<mxCell id="initblock" parent="1" style="rounded=8;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacingLeft=12;spacingRight=10;spacingTop=8;spacingBottom=8;fontFamily=IBM Plex Sans;fontSize=12;fontColor=light-dark(#161616,#f4f4f4);fillColor=light-dark(#f4f4f4,#262626);strokeColor=light-dark(#8d8d8d,#6f6f6f);" value="<b>:JInitializationBlock</b><hr>id (key) · code · is_static<br>cyclomatic_complexity · span<br>annotations[] · thrown_exceptions[]<br>referenced_types[] · accessed_fields[]<br>docstring · _module" vertex="1">
<mxGeometry height="130" width="320" x="1400" y="775" as="geometry" />
</mxCell>
<mxCell id="param" parent="1" style="rounded=8;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacingLeft=12;spacingRight=10;spacingTop=8;spacingBottom=8;fontFamily=IBM Plex Sans;fontSize=12;fontColor=light-dark(#161616,#f4f4f4);fillColor=light-dark(#f4f4f4,#262626);strokeColor=light-dark(#8d8d8d,#6f6f6f);" value="<b>:JParameter</b><hr>id (key) · name · type<br>annotations[] · modifiers[]<br>start/end line · start/end column<br>_module" vertex="1">
<mxGeometry height="110" width="300" x="1860" y="120" as="geometry" />
</mxCell>
<mxCell id="callsite" parent="1" style="rounded=8;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacingLeft=12;spacingRight=10;spacingTop=8;spacingBottom=8;fontFamily=IBM Plex Sans;fontSize=12;fontColor=light-dark(#161616,#f4f4f4);fillColor=light-dark(#f4f4f4,#262626);strokeColor=light-dark(#8d8d8d,#6f6f6f);" value="<b>:JCallSite</b><hr>id (key) · method_name<br>receiver_expr/type · return_type<br>callee_signature · argument_types[]<br>argument_expr[] · is_unspecified · flags<br>span+columns · docstring · _module" vertex="1">
<mxGeometry height="130" width="300" x="1860" y="275" as="geometry" />
</mxCell>
<mxCell id="var" parent="1" style="rounded=8;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacingLeft=12;spacingRight=10;spacingTop=8;spacingBottom=8;fontFamily=IBM Plex Sans;fontSize=12;fontColor=light-dark(#161616,#f4f4f4);fillColor=light-dark(#f4f4f4,#262626);strokeColor=light-dark(#8d8d8d,#6f6f6f);" value="<b>:JVariable</b><hr>id (key) · name · type<br>initializer · span + columns<br>docstring · _module" vertex="1">
<mxGeometry height="95" width="300" x="1860" y="450" as="geometry" />
</mxCell>
<mxCell id="crudop" parent="1" style="rounded=8;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacingLeft=12;spacingRight=10;spacingTop=8;spacingBottom=8;fontFamily=IBM Plex Sans;fontSize=12;fontColor=light-dark(#161616,#f4f4f4);fillColor=light-dark(#f4f4f4,#262626);strokeColor=light-dark(#8d8d8d,#6f6f6f);" value="<b>:JCrudOperation</b><hr>id (key) · operation_type<br>line_number · target_table<br>involved_columns[] · condition<br>joined_tables[] · _module" vertex="1">
<mxGeometry height="110" width="300" x="2300" y="275" as="geometry" />
</mxCell>
<mxCell id="crudq" parent="1" style="rounded=8;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacingLeft=12;spacingRight=10;spacingTop=8;spacingBottom=8;fontFamily=IBM Plex Sans;fontSize=12;fontColor=light-dark(#161616,#f4f4f4);fillColor=light-dark(#f4f4f4,#262626);strokeColor=light-dark(#8d8d8d,#6f6f6f);" value="<b>:JCrudQuery</b><hr>id (key) · query_type<br>line_number · query_arguments[]<br>_module" vertex="1">
<mxGeometry height="85" width="300" x="2300" y="430" as="geometry" />
</mxCell>
<mxCell id="crosscut" parent="1" style="rounded=8;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacingLeft=12;spacingRight=10;spacingTop=8;spacingBottom=8;fontFamily=IBM Plex Sans;fontSize=12;fontColor=light-dark(#161616,#f4f4f4);fillColor=light-dark(#fff8e1,#332a00);strokeColor=light-dark(#f1c21b,#d2a106);" value="<b>Cross-cutting relationships</b><hr><b>J_HAS_COMMENT</b>: {JCompilationUnit, JType, JCallable, JField, JCallSite, JVariable, JRecordComponent, JInitializationBlock} → :JComment<br><b>J_ANNOTATED_BY</b>: {JType, JCallable, JField} → :JAnnotation<br><b>J_IMPORTS</b>: JCompilationUnit → {JType, JPackage} (is_static, is_wildcard)<br><b>J_RESOLVES_TO</b>: JCallSite → JCallable<br><b>J_CALLS</b>: JCallable → JCallable (type, weight, source_kind, destination_kind)<br><b>J_EXTENDS · J_IMPLEMENTS · J_HAS_NESTED_TYPE</b>: JType → JType<br>also sourced from <b>JInitializationBlock</b>: J_HAS_CALLSITE, J_DECLARES_VAR<br>also sourced from <b>JCallable</b>: J_HAS_CRUD_OPERATION, J_HAS_CRUD_QUERY" vertex="1">
<mxGeometry height="169" width="860" x="40" y="970" as="geometry" />
</mxCell>
<mxCell id="pkg" parent="1" style="rounded=8;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacingLeft=12;spacingRight=10;spacingTop=8;spacingBottom=8;fontFamily=IBM Plex Sans;fontSize=12;fontColor=light-dark(#161616,#f4f4f4);fillColor=light-dark(#f6f2ff,#2a1a3a);strokeColor=light-dark(#8a3ffc,#be95ff);" value="<b>:JPackage</b> «shared, no _module»<hr>name (key)" vertex="1">
<mxGeometry height="65" width="280" x="940" y="1000" as="geometry" />
</mxCell>
<mxCell id="annot" parent="1" style="rounded=8;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacingLeft=12;spacingRight=10;spacingTop=8;spacingBottom=8;fontFamily=IBM Plex Sans;fontSize=12;fontColor=light-dark(#161616,#f4f4f4);fillColor=light-dark(#f6f2ff,#2a1a3a);strokeColor=light-dark(#8a3ffc,#be95ff);" value="<b>:JAnnotation</b> «shared, no _module»<hr>name (key)" vertex="1">
<mxGeometry height="65" width="280" x="1260" y="1000" as="geometry" />
</mxCell>
<mxCell id="comment" parent="1" style="rounded=8;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacingLeft=12;spacingRight=10;spacingTop=8;spacingBottom=8;fontFamily=IBM Plex Sans;fontSize=12;fontColor=light-dark(#161616,#f4f4f4);fillColor=light-dark(#f4f4f4,#262626);strokeColor=light-dark(#8d8d8d,#6f6f6f);" value="<b>:JComment</b> «unit-owned, referenced by many»<hr>id (key) · content · is_javadoc<br>start/end line · start/end column<br>_module" vertex="1">
<mxGeometry height="95" width="340" x="1580" y="1000" as="geometry" />
</mxCell>
<mxCell id="e_unit" edge="1" parent="1" source="app" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;fontFamily=IBM Plex Sans;fontSize=11;fontColor=light-dark(#161616,#f4f4f4);labelBackgroundColor=light-dark(#f2f4f8,#262626);labelBorderColor=none;strokeColor=light-dark(#8d8d8d,#6f6f6f);endArrow=block;exitX=1;exitY=0.5;entryX=0;entryY=0.5;" target="cu" value="J_HAS_UNIT">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e_dtype" edge="1" parent="1" source="cu" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;fontFamily=IBM Plex Sans;fontSize=11;fontColor=light-dark(#161616,#f4f4f4);labelBackgroundColor=light-dark(#f2f4f8,#262626);labelBorderColor=none;strokeColor=light-dark(#8d8d8d,#6f6f6f);endArrow=block;exitX=1;exitY=0.5;entryX=0;entryY=0.5;" target="type" value="J_DECLARES_TYPE">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e_hcall" edge="1" parent="1" source="type" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;fontFamily=IBM Plex Sans;fontSize=11;fontColor=light-dark(#161616,#f4f4f4);labelBackgroundColor=light-dark(#f2f4f8,#262626);labelBorderColor=none;strokeColor=light-dark(#8d8d8d,#6f6f6f);endArrow=block;exitX=1;exitY=0.5;entryX=0;entryY=0.5;" target="callable" value="J_HAS_CALLABLE">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e_hfield" edge="1" parent="1" source="type" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;fontFamily=IBM Plex Sans;fontSize=11;fontColor=light-dark(#161616,#f4f4f4);labelBackgroundColor=light-dark(#f2f4f8,#262626);labelBorderColor=none;strokeColor=light-dark(#8d8d8d,#6f6f6f);endArrow=block;exitX=1;exitY=0.5;entryX=0;entryY=0.5;" target="field" value="J_HAS_FIELD">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e_henum" edge="1" parent="1" source="type" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;fontFamily=IBM Plex Sans;fontSize=11;fontColor=light-dark(#161616,#f4f4f4);labelBackgroundColor=light-dark(#f2f4f8,#262626);labelBorderColor=none;strokeColor=light-dark(#8d8d8d,#6f6f6f);endArrow=block;exitX=1;exitY=0.5;entryX=0;entryY=0.5;" target="enumc" value="J_HAS_ENUM_CONSTANT">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e_hrec" edge="1" parent="1" source="type" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;fontFamily=IBM Plex Sans;fontSize=11;fontColor=light-dark(#161616,#f4f4f4);labelBackgroundColor=light-dark(#f2f4f8,#262626);labelBorderColor=none;strokeColor=light-dark(#8d8d8d,#6f6f6f);endArrow=block;exitX=1;exitY=0.5;entryX=0;entryY=0.5;" target="record" value="J_HAS_RECORD_COMPONENT">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e_hinit" edge="1" parent="1" source="type" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;fontFamily=IBM Plex Sans;fontSize=11;fontColor=light-dark(#161616,#f4f4f4);labelBackgroundColor=light-dark(#f2f4f8,#262626);labelBorderColor=none;strokeColor=light-dark(#8d8d8d,#6f6f6f);endArrow=block;exitX=1;exitY=0.5;entryX=0;entryY=0.5;" target="initblock" value="J_HAS_INIT_BLOCK">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e_hparam" edge="1" parent="1" source="callable" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;fontFamily=IBM Plex Sans;fontSize=11;fontColor=light-dark(#161616,#f4f4f4);labelBackgroundColor=light-dark(#f2f4f8,#262626);labelBorderColor=none;strokeColor=light-dark(#8d8d8d,#6f6f6f);endArrow=block;exitX=1;exitY=0.5;entryX=0;entryY=0.5;" target="param" value="J_HAS_PARAMETER">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e_hcs" edge="1" parent="1" source="callable" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;fontFamily=IBM Plex Sans;fontSize=11;fontColor=light-dark(#161616,#f4f4f4);labelBackgroundColor=light-dark(#f2f4f8,#262626);labelBorderColor=none;strokeColor=light-dark(#8d8d8d,#6f6f6f);endArrow=block;exitX=1;exitY=0.5;entryX=0;entryY=0.5;" target="callsite" value="J_HAS_CALLSITE">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e_dvar" edge="1" parent="1" source="callable" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;fontFamily=IBM Plex Sans;fontSize=11;fontColor=light-dark(#161616,#f4f4f4);labelBackgroundColor=light-dark(#f2f4f8,#262626);labelBorderColor=none;strokeColor=light-dark(#8d8d8d,#6f6f6f);endArrow=block;exitX=1;exitY=0.5;entryX=0;entryY=0.5;" target="var" value="J_DECLARES_VAR">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e_hcrudop" edge="1" parent="1" source="callsite" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;fontFamily=IBM Plex Sans;fontSize=11;fontColor=light-dark(#161616,#f4f4f4);labelBackgroundColor=light-dark(#f2f4f8,#262626);labelBorderColor=none;strokeColor=light-dark(#8d8d8d,#6f6f6f);endArrow=block;exitX=1;exitY=0.5;entryX=0;entryY=0.5;" target="crudop" value="J_HAS_CRUD_OPERATION">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e_hcrudq" edge="1" parent="1" source="callsite" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;fontFamily=IBM Plex Sans;fontSize=11;fontColor=light-dark(#161616,#f4f4f4);labelBackgroundColor=light-dark(#f2f4f8,#262626);labelBorderColor=none;strokeColor=light-dark(#8d8d8d,#6f6f6f);endArrow=block;exitX=1;exitY=0.5;entryX=0;entryY=0.5;" target="crudq" value="J_HAS_CRUD_QUERY">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e_typeloop" edge="1" parent="1" source="type" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;fontFamily=IBM Plex Sans;fontSize=11;fontColor=light-dark(#161616,#f4f4f4);labelBackgroundColor=light-dark(#f2f4f8,#262626);labelBorderColor=none;strokeColor=light-dark(#da1e28,#fa4d56);endArrow=block;exitX=0.35;exitY=0;entryX=0.65;entryY=0;" target="type" value="↺ J_EXTENDS · J_IMPLEMENTS · J_HAS_NESTED_TYPE">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e_callloop" edge="1" parent="1" source="callable" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;fontFamily=IBM Plex Sans;fontSize=13;fontStyle=1;fontColor=light-dark(#da1e28,#fa4d56);labelBackgroundColor=light-dark(#fff1f1,#4b1a1f);labelBorderColor=none;strokeColor=light-dark(#da1e28,#fa4d56);strokeWidth=3;endArrow=block;exitX=0.25;exitY=0;entryX=0.75;entryY=0;" target="callable" value="↺ J_CALLS — the call graph (-a 2)">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e_resolves" edge="1" parent="1" source="callsite" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;dashed=1;fontFamily=IBM Plex Sans;fontSize=11;fontColor=light-dark(#161616,#f4f4f4);labelBackgroundColor=light-dark(#f2f4f8,#262626);labelBorderColor=none;strokeColor=light-dark(#007d79,#08bdba);strokeWidth=2;endArrow=block;exitX=0;exitY=0.7;entryX=1;entryY=0.65;" target="callable" value="J_RESOLVES_TO">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="callgraph_note" parent="1" style="rounded=8;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacingLeft=12;spacingRight=10;spacingTop=8;spacingBottom=8;fontFamily=IBM Plex Sans;fontSize=12;fontColor=light-dark(#161616,#f4f4f4);fillColor=light-dark(#fff1f1,#4b1a1f);strokeColor=light-dark(#da1e28,#fa4d56);strokeWidth=2;" value="<b>Call graph</b> (analysis level -a 2)<hr>↺ <b>J_CALLS</b>: :JCallable → :JCallable, weighted<br>(type · weight · source_kind · destination_kind).<br>Emitted only at -a 2 — at -a 1 the graph is the symbol<br>table (containment) only, with no J_CALLS edges.<br><b>J_RESOLVES_TO</b> (dashed): each :JCallSite → the<br>:JCallable it resolves to." vertex="1">
<mxGeometry height="135" width="600" x="2180" y="20" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>