CoreModel holds meta models which are constant and basic building block of the graph. Since throughout the lifetime of the application, we rebuild PureModel many times, we cannot have these basic building blocks as part of PureModel as that will throw off referential equality.

Also, since project dependency uses primitive types, it might even cause the dependency model and system model to depend on PureModel which is bad, as it could potentially cause memory leak as we rebuild the graph.

Hierarchy (View Summary)

Methods

  • Dispose the current graph and any potential reference from parts outside of the graph to the graph This is a MUST to prevent memory-leak as we might have references between metamodels from this graph and other graphs

    Returns Promise<void>

  • NOTE: primitive types are special, they are not put in any package (i.e. they are not linked to Root package at all)

    Returns void

  • NOTE: this method has to do with graph modification and as of the current set up, we should not allow it to be called on any immutable graphs. As such, we protect it and let the main graph expose it. The other benefit of exposing this in the main graph is that we could do better duplicated path check

    Parameters

    • element: PackageableElement
    • oldPath: string
    • newPath: string

    Returns void