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
NOTE: primitive types are special, they are not put in any package (i.e. they are not linked to Root
package at all)
Protected
renameNOTE: 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
TODO: this will be removed once we have full support for section index See https://github.com/finos/legend-studio/issues/1067
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.