Skip to content
Draft
Show file tree
Hide file tree
Changes from 6 commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
7e694be
chore: dependency update
ichxorya May 6, 2026
5730154
fix: move use-gui archunit output to `target`
ichxorya May 6, 2026
a95fb3e
chore: show existing problems before fix
ichxorya May 6, 2026
dc8a360
docs: add note on this PR
ichxorya May 6, 2026
d08243a
docs: (unchecked) cyclic visualization
May 6, 2026
8d3b7ea
refactor(api): break circular dependency between api and api.impl
ichxorya May 7, 2026
8df70f3
docs: update notes
ichxorya May 7, 2026
7eed12f
refactor(test): replace import to free the `exports org.tzi.use.api.i…
ichxorya May 15, 2026
1c64371
chore: clean up this mis-pasted text
ichxorya May 15, 2026
2d6f12e
fix: resolve cyclic bug 8
ichxorya May 15, 2026
f0e4b4f
docs: note that we need to address the breaking api changes, leading …
ichxorya May 15, 2026
4b22c80
fix: mini fix per copilot's comment
ichxorya May 15, 2026
4fe9153
fix: bug 5 resolved
ichxorya May 15, 2026
96ce6f3
fix: bug 6 resolved
ichxorya May 15, 2026
18303df
docs: plan for bug 7
ichxorya May 15, 2026
a7044e5
fix: bug 7 resolved
ichxorya May 16, 2026
044e1d0
fix: bug 2 resolved
ichxorya May 16, 2026
81f8a99
fix: address copilot review on generate_cycle_mermaid.py
ichxorya May 16, 2026
9435ae3
refactor: bug 3 Phase A — split runtime root into spi/ and bootstrap/
ichxorya May 16, 2026
b968dac
docs: bug 3 Phase A — before/after/Δ diagrams in PR notes
ichxorya May 16, 2026
c0f9624
refactor: bug 3 Phase B — SPI consolidation + descriptors next to fac…
ichxorya May 16, 2026
94ed78c
fix: bug 3 resolved — Phase C closes runtime cycles (5 → 0)
ichxorya May 16, 2026
e663e3f
fix: bug 1 Phase A — break mm → sys edges (uml triangle 5 → 3 cycles)
May 16, 2026
0aef0f0
fix: bug 9 + graph→util cleanup — core cycle 34 → 29
May 16, 2026
cfbb943
fix: bug 12 — move ModelBrowserSorting to gui.util/utilFX (GUI cycles…
May 16, 2026
8304e00
fix: bug 13 — kill viewsFX → mainFX edge (GUI 10 → 9 cycles)
May 16, 2026
48c0c82
fix: bug 14 — kill util → views (GUI 9 → 5 cycles)
May 16, 2026
e0192d3
docs: update PR notes — record Bugs 9, 10, 12, 13, 14; refresh metrics
May 16, 2026
16381e4
fix: bug 19 — kill uml → gen back-edge (core 29→20, entire 246→213)
May 17, 2026
b199fe7
fix: bug 20 — kill gen → parser back-edge (core 20→19, entire 213→203)
May 17, 2026
2136523
fix: bug 16 — move CompilationFailedException to parser; loosen Symbo…
May 17, 2026
3e320f1
refactor: move util.uml.sorting → uml.mm.sorting (no cycle change yet)
May 17, 2026
139cfe9
fix: bug 11 — move shared coverage visitors to uml.analysis.coverage …
May 17, 2026
9baafc4
fix: bug 23 — kill util → uml back-edge (core 8→2, entire 146→118)
May 17, 2026
f6f6a4d
refactor: move SrcPos + SemanticException to util (no cycle change yet)
May 17, 2026
6cee57f
fix: eliminate remaining uml → parser back-edge (entire-project 118 →…
May 17, 2026
712f1f6
fix: move ShellReadline + TestModelUtil — entire-project 94 → 3
May 17, 2026
7ba0b5d
docs: update PR notes — entire-project 275 → 3 (99% reduction)
May 17, 2026
1d0c69c
fix: bugs 26+27 — plugin SPI refactor, entire-project 3 → 0 ✅
May 17, 2026
8bfb54d
fix: extract IPluginActionProxy + relocate diagram plugin classes (gu…
May 17, 2026
a2d308f
fix: break views↔graphlayout + views↔mainFX cycles (gui 5 → 1)
May 17, 2026
26793fb
docs: update PR notes — entire-project 275 → 0 (100% ✅), gui 14 → 1
May 17, 2026
9122978
refactor: move ViewFrame to gui.views (incremental, main↔views cycle …
May 17, 2026
5be59e6
fix: break gui_main and shell sub-slice cycles
May 17, 2026
1a2339a
refactor: move ModelBrowser handlers + EvalOCLDialog (gui cycle uncha…
May 17, 2026
f01432a
refactor: move View interface from gui.views to gui.main
May 17, 2026
2f51a17
refactor: ViewManager invokes ViewFrame.close() reflectively
May 17, 2026
f5fa293
docs: PR notes — record sub-slice + layered-arch zero-cycle achievements
May 17, 2026
04d1e12
docs: document factory-pattern path for remaining gui:main↔views cycle
May 17, 2026
7e85b92
docs: final ArchUnit metrics — 11/13 tests pass with zero cycles
May 17, 2026
de27efc
fix: bug 17 + bug 1 — collapse gui.main↔views and uml mm/ocl/sys cycl…
May 17, 2026
a0f0c05
docs: refresh Current Metrics table — all 14 cycle tests at zero
May 17, 2026
52057e6
docs: finalization
May 17, 2026
42ab578
refactor: revert slicer-collapse rename + collapse ocl→mm subpackages
May 17, 2026
5721338
refactor: extract IModelState + relocate MLinkSet/MSystemException to…
May 17, 2026
1a40345
/8
May 17, 2026
aded938
refactor: relocate operation-invoking expressions to sys.expr and MLi…
May 17, 2026
a77e602
docs: refresh PR notes — Bug 1 Phase B+C now genuinely resolved
May 17, 2026
fb49605
docs: honest verification of ArchUnit state — what runs, what doesn't…
May 17, 2026
ed16b20
test: relocate expression/system tests to sys to clear uml-with-tests…
May 17, 2026
3e0e243
test: relocate all cross-slice tests to org.tzi.use.integration.*
May 17, 2026
5c10b6b
fix: cast MObject.state(IModelState) results in use-gui
May 17, 2026
d5af9fc
docs: PR notes reflect genuine zero across every ArchUnit test
May 17, 2026
94a857f
chore: move orphan package.html + correct doc's soil/RubyHelper paths
May 17, 2026
3056e38
docs: add diff analysis vs main with mermaid diagrams
May 17, 2026
54f16fb
fix: remove most of the warnings related to this PR
May 17, 2026
52ed155
docs: remove temp files that aren't needed anymore
May 17, 2026
96d283e
fix: GUI booting problems due to obsolete plugins
May 17, 2026
2ef8584
test(arch): run all 6 ArchUnit tests under surefire 3.5.2 + vintage, …
claude May 31, 2026
0d6ea24
docs: add temporary reviewer-facing verification status (decycle-2)
claude May 31, 2026
0c83e9b
docs: add independent code review of the decycle-2 PR
claude May 31, 2026
d0c684e
fix: guard MObjectState downcasts of getSelf().state() with a descrip…
ichxorya Jun 3, 2026
93d26bb
docs: add MIGRATING.md and correct two package-fact errors in the PR …
ichxorya Jun 3, 2026
d17335a
refactor(gui): relocate edges.GUI demo to break the edges<->util pack…
ichxorya Jun 3, 2026
5db1e15
test(arch): measure the gui.views.diagrams cycle blind-spot (non-gating)
ichxorya Jun 3, 2026
a2d5095
refactor(gui): extract diagrams.framework foundation slice
ichxorya Jun 3, 2026
8fe4ee5
refactor(gui): merge waypoints into elements.waypoints
ichxorya Jun 3, 2026
1c447ba
refactor(gui): peel elements off the diagram via framework interfaces
ichxorya Jun 3, 2026
4c375bd
refactor(gui): route diagram views through framework.IMainWindowServices
ichxorya Jun 3, 2026
d198b1f
refactor(gui): invert AllLayoutTypes/StyleInfoBase node coupling via …
ichxorya Jun 3, 2026
334b536
refactor(gui): relocate DiagramView framework to a base slice
ichxorya Jun 3, 2026
a373b64
refactor(gui): untangle event<->types (relocate Hide actions, invert …
ichxorya Jun 3, 2026
b22c24b
refactor(gui): break type/selection -> root via a framework main-wind…
ichxorya Jun 3, 2026
920418f
refactor(gui): move IFXWindowHost to framework + StyleInfo* into clas…
ichxorya Jun 3, 2026
d45022f
refactor(gui): dissolve the selection slice + gate gui.views.diagrams…
ichxorya Jun 3, 2026
8a1d193
build(assembly): bundle the 5 plugins rebuilt against the decycled 7.…
ichxorya Jun 3, 2026
23bfeab
docs(MIGRATING): document the gui.views.diagrams decycling relocations
ichxorya Jun 3, 2026
037f02f
chore: decycle-2 minor changes; autonomous refactor to fit the plugin…
ichxorya Jun 5, 2026
417bb34
Merge branch 'useocl:main' into main
ichxorya Jun 5, 2026
27d0ddb
Merge branch 'main' into decycle-2
ichxorya Jun 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"java.compile.nullAnalysis.mode": "automatic",
"java.configuration.updateBuildConfiguration": "interactive"
}
238 changes: 238 additions & 0 deletions README_nghiabt_notes_on_this_pr/nghiabt_notes_on_this_pr.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,238 @@
# Cyclic Dependency Bugs

> This file tracks architectural bugs detected by ArchUnit.
> Delete this file once all issues are resolved and the PR is merged.

We start from the commit [5989a4b](https://github.com/useocl/use/commit/5989a4be5f2b181189965482f4f10da3971878a4) (Merge pull request #130 from croni42/feature-main-branch-adjustment), date: 2026-04-27 (YYYY-MM-DD).

---

## Bug 1: `uml.mm` ↔ `uml.ocl` ↔ `uml.sys` triangle (use-core)

- **Severity:** Critical — 34 cycles, 2231 dependency violations
- **Location:** `org.tzi.use.uml.*`
- **Problem:** The metamodel (`mm`), OCL layer (`ocl`), and runtime system (`sys`) form
a tightly coupled triangle. This is the single largest source of cycles in the project.
- `uml.ocl.value` types (`ObjectValue`, `LinkValue`, `InstanceValue`) hold direct
references to `uml.sys` runtime objects (`MObject`, `MLink`, `MInstance`).
- `uml.sys.soil.*` statement constructors take `uml.ocl.expr.Expression` parameters.
- `util.soil.VariableEnvironment` depends on `uml.ocl.value.Value`.
- **Fix direction:** Introduce interfaces/abstractions at the `uml.ocl` ↔ `uml.sys`
boundary. Value types should not hold concrete runtime references.

<!-- BEGIN MERMAID:bug-1 -->
**uml.* triangle** — 5 cycle(s), 6 edge(s) across 3 package(s)

```mermaid
flowchart LR
mm["mm"]
ocl["ocl"]
sys["sys"]
mm --> ocl
ocl --> mm
ocl --> sys
sys --> mm
mm --> sys
sys --> ocl
linkStyle 0,1,2,3,4,5 stroke:#d33,stroke-width:2px
```
<!-- END MERMAID:bug-1 -->

## Bug 2: `gui.main` and `gui.views` internal cycles (use-gui)

- **Severity:** Medium — 1 cycle each, 14 GUI-specific cycles total
- **Location:** `org.tzi.use.gui.main`, `org.tzi.use.gui.views`
- **Problem:** Subpackages within `gui.main` and `gui.views` have circular dependencies
between each other.
- **Fix direction:** Extract shared types into a common subpackage or flatten the hierarchy.

<!-- BEGIN MERMAID:bug-2 -->
**gui.main** — 1 cycle(s), 2 edge(s) across 2 package(s)

```mermaid
flowchart LR
root["root"]
runtime["runtime"]
root --> runtime
runtime --> root
linkStyle 0,1 stroke:#d33,stroke-width:2px
```

**gui.views** — 1 cycle(s), 2 edge(s) across 2 package(s)

```mermaid
flowchart LR
diagrams["diagrams"]
selection["selection"]
diagrams --> selection
selection --> diagrams
linkStyle 0,1 stroke:#d33,stroke-width:2px
```
<!-- END MERMAID:bug-2 -->

## Bug 3: `runtime` package cycles (use-gui)

- **Severity:** High — 43 cycles
- **Location:** `org.tzi.use.runtime`
- **Problem:** The runtime package has heavy internal coupling (43 cycles detected in
Maven structure analysis).
- **Fix direction:** Needs further investigation — identify which runtime subpackages
are involved and break the dependency chains.

<!-- BEGIN MERMAID:bug-3 -->
**runtime** — 43 cycle(s), 20 edge(s) across 6 package(s)

```mermaid
flowchart LR
gui["gui"]
impl["impl"]
root["root"]
service["service"]
shell["shell"]
util["util"]
gui --> impl
impl --> gui
impl --> root
root --> gui
impl --> service
service --> root
impl --> shell
shell --> root
shell --> util
util --> gui
util --> root
util --> service
impl --> util
util --> shell
gui --> root
root --> impl
gui --> util
util --> impl
shell --> impl
root --> service
linkStyle 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19 stroke:#d33,stroke-width:2px
```
<!-- END MERMAID:bug-3 -->

## Bug 4: `api.impl` ↔ `api` factory cycle (use-core) — ✅ RESOLVED

- **Severity:** ~~Low — 1 cycle~~ → **0 cycles**
- **Location:** `org.tzi.use.api`, `org.tzi.use.api.impl`
- **Problem:** `UseSystemApi` factory methods in the root `api` package directly
construct `UseSystemApiNative` and `UseSystemApiUndoable` from `api.impl`,
while `impl` depends back on root API types.
- **Fix:** Moved factory methods into `api.impl.UseSystemApiFactory`. The root
`api` package no longer imports `api.impl`, making the dependency
unidirectional (`impl → root` only). Updated all 26 call sites across 10 files.

### Before (1 cycle)

```mermaid
flowchart LR
impl["api.impl"] -->|"extends UseSystemApi<br/>throws UseApiException"| root["api"]
root -->|"UseSystemApi.create() calls<br/>new UseSystemApiNative/Undoable"| impl
linkStyle 0 stroke:#2a9d8f,stroke-width:2px
linkStyle 1 stroke:#d33,stroke-width:2px
```

### After (0 cycles) ✅

```mermaid
flowchart LR
impl["api.impl<br/>(UseSystemApiFactory)"] -->|"extends UseSystemApi<br/>throws UseApiException"| root["api"]
linkStyle 0 stroke:#2a9d8f,stroke-width:2px
```

> _Old ArchUnit failure report archived at `docs/archunit-history/before-fix/bug-4_failure_report_maven_cycles_api.txt`_

## Bug 5: `gen.assl` ↔ `gen.tool` cycle (use-core)

- **Severity:** Low — 1 cycle
- **Location:** `org.tzi.use.gen.assl`, `org.tzi.use.gen.tool`
- **Problem:** `GChecker` (in `gen.tool`) calls `IGCollector` methods (in
`gen.assl.dynamics`), while ASSL dynamics depends back on tool types.
- **Fix direction:** Move `IGCollector` interface to a shared package, or invert
the dependency with callbacks.

<!-- BEGIN MERMAID:bug-5 -->
**gen.assl / gen.tool** — 1 cycle(s), 2 edge(s) across 2 package(s)

```mermaid
flowchart LR
assl["assl"]
tool["tool"]
assl --> tool
tool --> assl
linkStyle 0,1 stroke:#d33,stroke-width:2px
```
<!-- END MERMAID:bug-5 -->

## Bug 6: `parser.ocl` ↔ `parser.use` / `parser.soil` cycles (use-core)

- **Severity:** Low — 2 cycles
- **Location:** `org.tzi.use.parser.*`
- **Problem:** SOIL AST nodes reference OCL AST types (`ASTType`, `ASTExpression`),
and the OCL parser references USE parser types, creating mutual dependencies.
- **Fix direction:** Extract shared AST base types into a common `parser.ast` package.

<!-- BEGIN MERMAID:bug-6 -->
**parser.*** — 2 cycle(s), 4 edge(s) across 3 package(s)

```mermaid
flowchart LR
ocl["ocl"]
use["use"]
soil["soil"]
ocl --> use
use --> ocl
use --> soil
soil --> ocl
linkStyle 0,1,2,3 stroke:#d33,stroke-width:2px
```
<!-- END MERMAID:bug-6 -->

## Bug 7: Layer violations in GUI launcher (use-gui)

- **Severity:** Medium — 21 violations
- **Location:** `org.tzi.use.main.gui.*`, `org.tzi.use.util.test.*`
- **Problem:** These are not cycles but layer boundary violations:
- `main.gui.fx.JavaFXAppLauncher` directly constructs `gui.mainFX.MainWindow`.
- `main.gui.swing.MainSwing` directly constructs `gui.main.MainWindow`.
- `util.test.DiagramUtilTest` calls into `gui.views.diagrams.util.Util`.
- **Fix direction:** Launchers should use a factory or DI to obtain window instances.
Move `DiagramUtilTest` to the GUI test source root.

<!-- BEGIN MERMAID:bug-7 -->
**GUI launcher layer violations** — 21 violation(s) across 3 caller→callee pair(s)

```mermaid
flowchart LR
n0["main.gui.fx<br/>JavaFXAppLauncher"]
n1["gui.mainFX<br/>MainWindow"]
n2["main.gui.swing<br/>MainSwing"]
n3["gui.main<br/>MainWindow"]
n4["util.test<br/>DiagramUtilTest"]
n5["gui.views.diagrams.util<br/>Util"]
n0 -. "5 call(s)" .-> n1
n2 -. "2 call(s)" .-> n3
n4 -. "14 call(s)" .-> n5
linkStyle 0,1,2 stroke:#d33,stroke-width:2px
```
<!-- END MERMAID:bug-7 -->

---

## Current Metrics

| Module | Cycles | Worst Area |
|----------|--------|-------------------------------------|
| use-core | 43 | `uml` package (Bug 1: 34 cycles) |
| use-gui | 384* | `runtime` (Bug 3: 43 cycles) |

\* Project-wide count; GUI-only is 14 cycles.

### Measurement Limitation

The "entire GUI" cycle count cannot be measured in isolation because GUI and Core share
overlapping package names (`org.tzi.use.util`, `org.tzi.use.main`). The ArchUnit importer
pulls in Core classes when scanning these packages, inflating the GUI-only count.
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
Cycle detected: Slice impl ->
Slice root ->
Slice impl
1. Dependencies of Slice impl
- Class <org.tzi.use.api.impl.UseSystemApiNative> extends class <org.tzi.use.api.UseSystemApi> in (UseSystemApiNative.java:0)
- Class <org.tzi.use.api.impl.UseSystemApiUndoable> extends class <org.tzi.use.api.UseSystemApi> in (UseSystemApiUndoable.java:0)
- Constructor <org.tzi.use.api.impl.UseSystemApiUndoable.<init>(org.tzi.use.api.UseModelApi)> has parameter of type <org.tzi.use.api.UseModelApi> in (UseSystemApiUndoable.java:0)
- Method <org.tzi.use.api.impl.UseSystemApiNative.createLinkEx(org.tzi.use.uml.mm.MAssociation, [Lorg.tzi.use.uml.sys.MObject;, [[Lorg.tzi.use.uml.ocl.value.Value;)> throws type <org.tzi.use.api.UseApiException> in (UseSystemApiNative.java:0)
- Method <org.tzi.use.api.impl.UseSystemApiNative.createLinkObjectEx(org.tzi.use.uml.mm.MAssociationClass, java.lang.String, [Lorg.tzi.use.uml.sys.MObject;, [[Lorg.tzi.use.uml.ocl.value.Value;)> throws type <org.tzi.use.api.UseApiException> in (UseSystemApiNative.java:0)
- Method <org.tzi.use.api.impl.UseSystemApiNative.createObjectEx(org.tzi.use.uml.mm.MClass, java.lang.String)> throws type <org.tzi.use.api.UseApiException> in (UseSystemApiNative.java:0)
- Method <org.tzi.use.api.impl.UseSystemApiNative.deleteLinkEx(org.tzi.use.uml.mm.MAssociation, [Lorg.tzi.use.uml.sys.MObject;, [[Lorg.tzi.use.uml.ocl.value.Value;)> throws type <org.tzi.use.api.UseApiException> in (UseSystemApiNative.java:0)
- Method <org.tzi.use.api.impl.UseSystemApiNative.deleteLinkEx(org.tzi.use.uml.sys.MLink)> throws type <org.tzi.use.api.UseApiException> in (UseSystemApiNative.java:0)
- Method <org.tzi.use.api.impl.UseSystemApiNative.deleteObjectEx(org.tzi.use.uml.sys.MObject)> throws type <org.tzi.use.api.UseApiException> in (UseSystemApiNative.java:0)
- Method <org.tzi.use.api.impl.UseSystemApiNative.redo()> throws type <org.tzi.use.api.UseApiException> in (UseSystemApiNative.java:0)
- Method <org.tzi.use.api.impl.UseSystemApiNative.setAttributeValueEx(org.tzi.use.uml.sys.MObject, org.tzi.use.uml.mm.MAttribute, org.tzi.use.uml.ocl.value.Value)> throws type <org.tzi.use.api.UseApiException> in (UseSystemApiNative.java:0)
- Method <org.tzi.use.api.impl.UseSystemApiNative.undo()> throws type <org.tzi.use.api.UseApiException> in (UseSystemApiNative.java:0)
- Method <org.tzi.use.api.impl.UseSystemApiUndoable.createLinkEx(org.tzi.use.uml.mm.MAssociation, [Lorg.tzi.use.uml.sys.MObject;, [[Lorg.tzi.use.uml.ocl.value.Value;)> throws type <org.tzi.use.api.UseApiException> in (UseSystemApiUndoable.java:0)
- Method <org.tzi.use.api.impl.UseSystemApiUndoable.createLinkObjectEx(org.tzi.use.uml.mm.MAssociationClass, java.lang.String, [Lorg.tzi.use.uml.sys.MObject;, [[Lorg.tzi.use.uml.ocl.value.Value;)> throws type <org.tzi.use.api.UseApiException> in (UseSystemApiUndoable.java:0)
- Method <org.tzi.use.api.impl.UseSystemApiUndoable.createObjectEx(org.tzi.use.uml.mm.MClass, java.lang.String)> throws type <org.tzi.use.api.UseApiException> in (UseSystemApiUndoable.java:0)
- Method <org.tzi.use.api.impl.UseSystemApiUndoable.deleteLinkEx(org.tzi.use.uml.mm.MAssociation, [Lorg.tzi.use.uml.sys.MObject;, [[Lorg.tzi.use.uml.ocl.value.Value;)> throws type <org.tzi.use.api.UseApiException> in (UseSystemApiUndoable.java:0)
- Method <org.tzi.use.api.impl.UseSystemApiUndoable.deleteLinkEx(org.tzi.use.uml.sys.MLink)> throws type <org.tzi.use.api.UseApiException> in (UseSystemApiUndoable.java:0)
- Method <org.tzi.use.api.impl.UseSystemApiUndoable.deleteObjectEx(org.tzi.use.uml.sys.MObject)> throws type <org.tzi.use.api.UseApiException> in (UseSystemApiUndoable.java:0)
- Method <org.tzi.use.api.impl.UseSystemApiUndoable.redo()> throws type <org.tzi.use.api.UseApiException> in (UseSystemApiUndoable.java:0)
- Method <org.tzi.use.api.impl.UseSystemApiUndoable.setAttributeValueEx(org.tzi.use.uml.sys.MObject, org.tzi.use.uml.mm.MAttribute, org.tzi.use.uml.ocl.value.Value)> throws type <org.tzi.use.api.UseApiException> in (UseSystemApiUndoable.java:0)
(22 further dependencies have been omitted...)
2. Dependencies of Slice root
- Method <org.tzi.use.api.UseSystemApi.create(org.tzi.use.main.Session)> calls constructor <org.tzi.use.api.impl.UseSystemApiUndoable.<init>(org.tzi.use.main.Session)> in (UseSystemApi.java:63)
- Method <org.tzi.use.api.UseSystemApi.create(org.tzi.use.uml.sys.MSystem, boolean)> calls constructor <org.tzi.use.api.impl.UseSystemApiUndoable.<init>(org.tzi.use.uml.sys.MSystem)> in (UseSystemApi.java:74)
- Method <org.tzi.use.api.UseSystemApi.create(org.tzi.use.uml.sys.MSystem, boolean)> calls constructor <org.tzi.use.api.impl.UseSystemApiNative.<init>(org.tzi.use.uml.sys.MSystem)> in (UseSystemApi.java:76)
- Method <org.tzi.use.api.UseSystemApi.create(org.tzi.use.uml.mm.MModel, boolean)> calls constructor <org.tzi.use.api.impl.UseSystemApiUndoable.<init>(org.tzi.use.uml.mm.MModel)> in (UseSystemApi.java:87)
- Method <org.tzi.use.api.UseSystemApi.create(org.tzi.use.uml.mm.MModel, boolean)> calls constructor <org.tzi.use.api.impl.UseSystemApiNative.<init>(org.tzi.use.uml.mm.MModel)> in (UseSystemApi.java:89)

Cycle count: 1
Loading