Class Project

  • All Implemented Interfaces:
    BaseElement, MDElement, com.nomagic.uml2.ext.jmi.reflect.ElementRegistry, com.nomagic.uml2.ext.jmi.reflect.RepositoryProvider, java.lang.Cloneable, java.lang.Comparable

    @OpenApi
    public class Project
    extends ElementImpl
    implements com.nomagic.uml2.ext.jmi.reflect.ElementRegistry, com.nomagic.uml2.ext.jmi.reflect.RepositoryProvider
    The Project class represents main storage of all project data like: main package, all diagrams and diagram windows.
    • Field Detail

      • FEATURES

        private static final java.util.Set<java.lang.String> FEATURES
        A set of ci features available in runtime
      • closed

        private volatile boolean closed
        Is project disposed
      • frozen

        private volatile boolean frozen
        Is project frozen - some project data may not be accessible if project is frozen
      • closing

        private volatile boolean closing
        Is project closing
      • relocatingIn

        private volatile boolean relocatingIn
        Is project relocating
      • COMMAND_EXECUTED

        @OpenApi
        public static final java.lang.String COMMAND_EXECUTED
        The any command (adding object, deleting object, changing specifications) executing event type and naming.
        See Also:
        Constant Field Values
      • DIAGRAM_OPENED

        @OpenApi
        public static final java.lang.String DIAGRAM_OPENED
        The diagram window opening event type and naming.
        See Also:
        Constant Field Values
      • DIAGRAM_CLOSED

        @OpenApi
        public static final java.lang.String DIAGRAM_CLOSED
        The diagram window closing event type and naming.
        See Also:
        Constant Field Values
      • DIAGRAM_EDITED

        @OpenApi
        public static final java.lang.String DIAGRAM_EDITED
        The any diagram properties editing event type and naming.
        See Also:
        Constant Field Values
      • DIAGRAM_ACTIVATED

        @OpenApi
        public static final java.lang.String DIAGRAM_ACTIVATED
        The diagram focus on event type and naming.
        See Also:
        Constant Field Values
      • DIAGRAM_WINDOW_ACTIVATED

        @OpenApi
        public static final java.lang.String DIAGRAM_WINDOW_ACTIVATED
        The diagram window focus on event type and naming.
        See Also:
        Constant Field Values
      • MANY_CLASSES_UPDATED

        public static final java.lang.String MANY_CLASSES_UPDATED
        Event type when many elements in project are changed (for example after project update,massive source reverse operation and etc)
        See Also:
        Constant Field Values
      • FILE_NAME_PROPERTY

        public static final java.lang.String FILE_NAME_PROPERTY
        Project file name property
        See Also:
        Constant Field Values
      • DIRTY_PROPERTY

        public static final java.lang.String DIRTY_PROPERTY
        Project "dirty" flag change
        See Also:
        Constant Field Values
      • counter

        private com.nomagic.magicdraw.core.MDCounter counter
        Counter for ID
      • needLocallySave

        private boolean needLocallySave
      • createBrowser

        private static boolean createBrowser
        Create project with or without browser.
      • windows

        private final java.util.Map<java.lang.String,​ProjectWindow> windows
      • commandHistory

        private final com.nomagic.magicdraw.commands.CommandHistory commandHistory
        Command history of project instance. It performs command executing, storing, undoing.
      • symbolUpdater

        @CheckForNull
        private com.nomagic.magicdraw.commands.SymbolUpdater symbolUpdater
        Explicitly set symbol updater. By default command history is used.
      • diagramWindowsManager

        private final com.nomagic.magicdraw.ui.ProjectDiagramWindowsManager diagramWindowsManager
        The window manager
      • objectsByID

        private final java.util.Map<java.lang.String,​java.lang.Object> objectsByID
        The map of all objects registered by id.
      • stateChangeHandler

        private StateChangeHandler stateChangeHandler
        State changes handler.
      • stereotypesStyleChangeManager

        private final com.nomagic.magicdraw.uml.symbols.StereotypesStyleChangeManager stereotypesStyleChangeManager
      • rootPackage

        private Package rootPackage
      • proxyManager

        private final ProxyManager proxyManager
        Proxy manager
      • dslManager

        private com.nomagic.magicdraw.ui.dsl.DSLManager dslManager
        Project customization manager
      • loaded

        private boolean loaded
      • file

        private com.nomagic.magicdraw.utils.ExtendedFile file
      • elementByIDFetcher

        private final com.nomagic.magicdraw.core.Project.ElementByIDFetcher elementByIDFetcher
      • binaryStreamAtticCleaner

        private final com.nomagic.magicdraw.core.BinaryStreamAtticCleaner binaryStreamAtticCleaner
      • primaryProject

        private IPrimaryProject primaryProject
        Storage where project is loaded from or saved to.
      • queryFactory

        private com.nomagic.ci.persistence.local.query.IQueryFactory queryFactory
      • hasUnloadedManuallyReachableModules

        @CheckForNull
        private java.lang.Boolean hasUnloadedManuallyReachableModules
        Determines whether there are manually reachable modules that are unloaded currently in this project
      • projectTitle

        private java.lang.String projectTitle
        Preset project title
      • intensiveActionExecuted

        private volatile boolean intensiveActionExecuted
      • serviceProvider

        private final com.nomagic.magicdraw.core.project.service.providers.ProjectServiceProvider serviceProvider
      • queryChangeRegistry

        private final java.util.concurrent.atomic.AtomicReference<com.nomagic.ci.persistence.local.query.IQueryChangeRegistry> queryChangeRegistry
      • lockProjectService

        private com.nomagic.magicdraw.teamwork2.esi.EsiLockProjectService lockProjectService
      • diagramContentListeners

        private final com.nomagic.utils.ExtendedPropertyChangeSupport diagramContentListeners
    • Constructor Detail

      • Project

        public Project()
        Constructor creates project.
    • Method Detail

      • isCreateBrowser

        public static boolean isCreateBrowser()
      • setCreateBrowser

        public static void setCreateBrowser​(boolean createBrowser)
      • getElementsIDs

        public static java.util.Collection<java.lang.String> getElementsIDs​(java.util.Collection<? extends BaseElement> elements)
        Retrieves the elements ids from DTObjects collection.
        Parameters:
        elements - collection of elements to get ID's for
        Returns:
        the collection of elements ids from the DTObjects collection.
      • executeIntensiveAction

        public boolean executeIntensiveAction​(java.lang.String reason)
        Executes time-intensive action if user agrees to.
        Parameters:
        reason - reason why the action might take a long time
        Returns:
        true if execute action
      • getProxyManager

        @OpenApi
        public ProxyManager getProxyManager()
        Returns:
        proxy manager of the project
      • getDSLManager

        public com.nomagic.magicdraw.ui.dsl.DSLManager getDSLManager()
        Returns project customization manager.
        Returns:
        the manager.
      • getBrowser

        @OpenApi
        public Browser getBrowser()
        Get browser.
        Returns:
        browser.
      • getOptions

        @OpenApi
        public ProjectOptions getOptions()
        Getter for project options.
        Returns:
        project options
      • getCommandHistory

        public com.nomagic.magicdraw.commands.CommandHistory getCommandHistory()
        Returns:
        project command history.
      • setSpecificSymbolUpdater

        public void setSpecificSymbolUpdater​(@CheckForNull
                                             com.nomagic.magicdraw.commands.SymbolUpdater symbolUpdater)
      • getSymbolUpdater

        public com.nomagic.magicdraw.commands.SymbolUpdater getSymbolUpdater()
      • getElementByIDQuerier

        public com.nomagic.magicdraw.core.Project.ElementByIDFetcher getElementByIDQuerier()
      • getDiagrams

        @OpenApi
        public java.util.Collection<DiagramPresentationElement> getDiagrams()
        Returns all existing diagrams stored in this Project.
        Returns:
        all existing DiagramPresentationElements. The collection is unmodifiable.
        See Also:
        DiagramPresentationElement
      • getDiagrams

        @OpenApi
        public java.util.Collection<DiagramPresentationElement> getDiagrams​(@CheckForNull
                                                                            java.lang.String type)
        Returns existing diagrams of given type stored in Project.

        Parameters:
        type - the given diagrams type. Returns all diagrams if type is null.
        Returns:
        collection of all diagram views.

        See Also:
        DiagramPresentationElement
      • getDiagram

        @CheckForNull
        @OpenApi
        public DiagramPresentationElement getDiagram​(Diagram diagramElement)
        Returns diagram presentation element for specified diagram model element.
        Parameters:
        diagramElement - diagram model element
        Returns:
        diagram presentation element.
      • setModel

        public void setModel​(Package p)
      • getTitle

        public java.lang.String getTitle()
        Returns:
        project title
      • setTitle

        public void setTitle​(java.lang.String title)
      • getFileName

        @CheckForNull
        @OpenApi
        public java.lang.String getFileName()
        Method returns file name of this project. If file name is undefined returns project name.
        Returns:
        file name of this project.
      • getDirectory

        @Deprecated
        public java.lang.String getDirectory()
        Deprecated.
        use #getFile.getParent
        Returns project directory.

        Returns:
        project location directory.
      • setDirectory

        @Deprecated
        public void setDirectory​(java.lang.String dir)
        Deprecated.
        Sets the project directory.

        Parameters:
        dir - the new project directory.
      • setName

        @Deprecated
        public void setName​(java.lang.String name)
        Deprecated.
        Sets the project name.

        Parameters:
        name - the new project name.
      • getName

        @OpenApi
        public java.lang.String getName()
        Returns project name.
        Specified by:
        getName in interface MDElement
        Overrides:
        getName in class com.nomagic.magicdraw.uml.MDElementImpl
        Returns:
        project name.
      • getFile

        public com.nomagic.magicdraw.utils.ExtendedFile getFile()
        Method returns file of this project.
        Returns:
        file of this project
      • setFileName

        public void setFileName​(java.lang.String fileName)
        Set the name of file as location of this project. Only local projects or locally saved remote projects can have file name.
        Parameters:
        fileName - absolute file path
      • accept

        public void accept​(Visitor visitor)
                    throws java.lang.Exception
        Description copied from interface: MDElement
        Method accepts visitor, and calls method visit<class name>(this) of visitor . See Visitor pattern for more details.
        Specified by:
        accept in interface MDElement
        Overrides:
        accept in class com.nomagic.magicdraw.uml.MDElementImpl
        Parameters:
        visitor - which visits this element.
        Throws:
        java.lang.Exception
      • getCounter

        public com.nomagic.magicdraw.core.MDCounter getCounter()
        Returns:
        id counter
      • getStyleManager

        @CheckForNull
        public StyleManager getStyleManager()
        Returns style manager
        Returns:
        style manager
      • getProjectDiagramWindowsManager

        public com.nomagic.magicdraw.ui.ProjectDiagramWindowsManager getProjectDiagramWindowsManager()
        Returns:
        diagrams windows manager
      • isRemote

        @OpenApi
        public boolean isRemote()
        Returns the remote or not remote state of the project.
        Returns:
        true if project is a remote project, false otherwise.
      • isEsiProject

        @OpenApi
        public boolean isEsiProject()
        Determines whether this is an ESI project
        Returns:
        true if ESI project, false otherwise
      • isDirty

        @OpenApi
        public boolean isDirty()
        Returns true if this project was modified after last save/load.
        Returns:
        true if this project was modified after last save/load.
      • setDirty

        @OpenApi
        public void setDirty​(boolean dirty,
                             StateChangeHandler.DirtyType dirtyType)
        Marks this project modified and sets modification type depending on previous type.
        Parameters:
        dirty - new dirty flag.
        dirtyType - specifies how much dirty is project.
        If dirtyType == null, then default dirtyType value (DirtyType.HARD_DIRTY) is set.
        If dirty == true && dirtyType == DirtyType.SOFT_DIRTY and project is already in state
        dirty == true && dirtyType == DirtyType.HARD_DIRTY, then project's state is not going to be changed.
      • getDirtyType

        @CheckForNull
        @OpenApi
        public StateChangeHandler.DirtyType getDirtyType()
        Returns project dirty type if project is dirty, otherwise - null.
        Returns:
        project dirty type
      • reSetDirty

        @OpenApi
        public void reSetDirty​(boolean dirty,
                               @CheckForNull
                               StateChangeHandler.DirtyType dirtyType)
        Marks this project modified and sets modification type without checking previous project's dirty type.
        Parameters:
        dirty - new dirty flag.
        dirtyType - specifies how much dirty is project. If dirtyType == null, then default dirtyType value (DirtyType.HARD_DIRTY) is set.
      • setCounter

        public void setCounter​(com.nomagic.magicdraw.core.MDCounter c)
        Sets the counter for the project.
        Parameters:
        c - the new counter;
      • addElementByID

        public void addElementByID​(BaseElement obj,
                                   @CheckForNull
                                   java.lang.String oldID)
        Register the object by id. The record about this object and its old id is removed.
        Specified by:
        addElementByID in interface com.nomagic.uml2.ext.jmi.reflect.ElementRegistry
        Parameters:
        obj - the object to register.
        oldID - the old id of the object.
      • getEsiLockProjectService

        private com.nomagic.magicdraw.teamwork2.esi.EsiLockProjectService getEsiLockProjectService()
      • updateElementLockState

        private void updateElementLockState​(BaseElement obj)
      • addToProjectRepository

        @OpenApi
        public void addToProjectRepository​(Element element)
        Adds element into this project repository and removes it from previous project repository. If element does not have an ID then it will be created.
        After this operation element can be retrieved from project by getElementByID(String).
        Parameters:
        element - any element
      • ensureLocalIDSet

        private void ensureLocalIDSet​(BaseElement obj)
      • checkDuplicates

        private void checkDuplicates​(BaseElement obj,
                                     java.lang.String newID)
      • removeElementByID

        private void removeElementByID​(BaseElement obj,
                                       java.lang.String oldID)
        Remove object from map by id
        Parameters:
        obj - object
        oldID - old object id
      • removeElementByID

        public void removeElementByID​(BaseElement obj)
        Unregister the object by id. The record about this object and is removed.
        Specified by:
        removeElementByID in interface com.nomagic.uml2.ext.jmi.reflect.ElementRegistry
        Parameters:
        obj - the object.
      • getQueryService

        private com.nomagic.ci.persistence.local.query.IQueryService getQueryService()
      • getQueryChangeRegistry

        private com.nomagic.ci.persistence.local.query.IQueryChangeRegistry getQueryChangeRegistry()
      • getElementByID

        @OpenApi
        @CheckForNull
        public BaseElement getElementByID​(@CheckForNull
                                          java.lang.String id)
        Return the element with given id.
        Specified by:
        getElementByID in interface com.nomagic.uml2.ext.jmi.reflect.ElementRegistry
        Parameters:
        id - the id of the element.
        Returns:
        the element with given id or null if element with such id is not registered in the project.
      • getPresentationElementByID

        @CheckForNull
        public BaseElement getPresentationElementByID​(java.lang.String elementID)
        Return the presentation element with given id from currently registered elements.
        Parameters:
        elementID - the id of the element, cannot be null
        Returns:
        the element with given id or null if element with such id is not registered in the project.
      • queryElementByID

        private BaseElement queryElementByID​(java.lang.String id)
      • isElementDisposed

        @OpenApi
        public static boolean isElementDisposed​(@CheckForNull
                                                Element element)
        Check if given element is unregistered from project.
        Parameters:
        element - element
        Returns:
        true if element is disposed
      • isDisposed

        @OpenApi
        public boolean isDisposed​(BaseElement element)
        Check if given element is unregistered from project.
        Parameters:
        element - element
        Returns:
        true if element is disposed
      • getElementsByIDs

        public java.util.Collection<? extends BaseElement> getElementsByIDs​(java.util.Collection<java.lang.String> ids)
        Return the objects by given ids.
        Parameters:
        ids - the collection of the ids of the objects.
        Returns:
        the collection of objects with given ids.
      • getElementsByIDs

        public java.util.Collection<? extends BaseElement> getElementsByIDs​(java.util.Collection<java.lang.String> ids,
                                                                            java.util.function.Supplier<java.util.Collection<BaseElement>> collectionFactory)
        Return the objects by given ids.
        Parameters:
        ids - the collection of the ids of the objects.
        Returns:
        the collection of objects with given ids.
      • resetElementsByID

        private void resetElementsByID()
        Resets all records about objects and theirs ids.
      • getAllIDS

        public java.util.Collection<java.lang.String> getAllIDS()
        Returns the collection of all ids in the project.
        Returns:
        the collection of all ids in the project.
      • getAllElements

        public java.util.Collection<BaseElement> getAllElements()
        Gets collection of all model elements in the project
        Specified by:
        getAllElements in interface com.nomagic.uml2.ext.jmi.reflect.ElementRegistry
        Returns:
        collection of elements
      • dispose

        public void dispose()
        Destroys the project. After this method call project can not be used any more.
        Specified by:
        dispose in interface BaseElement
        Overrides:
        dispose in class com.nomagic.magicdraw.uml.MDElementImpl
      • isProjectClosed

        public boolean isProjectClosed()
        Checks if this project was already disposed(closed). Such project cannot be activated any more.
        Returns:
        true if project was disposed (closed)
      • isProjectDisposed

        @Deprecated
        public boolean isProjectDisposed()
        Deprecated.
        use #isProjectClosed
        Checks if this project was already disposed(closed). Such project cannot be activated any more.
        Returns:
        true if project was disposed (closed)
      • isClosing

        public boolean isClosing()
        Returns:
        true if project is closing (preCloseFinal event is fired)
      • setClosing

        public void setClosing​(boolean closing)
        Set closing project state
        Parameters:
        closing - true if project is closing
      • getStateChangeHandler

        public StateChangeHandler getStateChangeHandler()
        Returns:
        StateChangeHandler for this project.
      • elementAdded

        public void elementAdded​(BaseElement element)
        Marks element as added, if it was previously removed its id is removed from id collection.
        Parameters:
        element - element id which was added.
      • elementRemoved

        public void elementRemoved​(BaseElement obj)
        Marks element removed, its id added to mDeletedObjectIDS.
        Parameters:
        obj - element which was removed.
      • isElementInProject

        public boolean isElementInProject​(java.lang.String id)
        Check if element with a given id is in this project.
        Parameters:
        id - element id
        Returns:
        true if element with given id is registered in project and is not removed.
      • removeWindow

        public void removeWindow​(ProjectWindow window)
      • getWindows

        public java.util.Collection<ProjectWindow> getWindows()
      • hasWindow

        public boolean hasWindow​(java.lang.String id)
      • getWindow

        public ProjectWindow getWindow​(java.lang.String id)
      • getStereotypesStyleChangeHandler

        public com.nomagic.magicdraw.uml.symbols.StereotypesStyleChangeManager getStereotypesStyleChangeHandler()
      • getRepository

        @OpenApi
        public AbstractRepository getRepository()
        Get project repository.
        Specified by:
        getRepository in interface com.nomagic.uml2.ext.jmi.reflect.RepositoryProvider
        Returns:
        repository.
      • setRepository

        public void setRepository​(AbstractRepository repository,
                                  com.nomagic.magicdraw.uml.transaction.InvalidModelHandler invalidModelHandler)
      • resetDynamicRepository

        public void resetDynamicRepository()
        Removes current dynamic repository if such exist and installs a new dynamic repository.
      • getElementsFactory

        @OpenApi
        public ElementsFactory getElementsFactory()
        Returns:
        Class for creating uml model elements.
      • getSmartEventSupport

        @OpenApi
        public SmartEventSupport getSmartEventSupport()
        Returns registry that allows to register smart listener configurations by element type.
        Returns:
        smart listener registry.
      • isModel

        public boolean isModel​(@CheckForNull
                               BaseElement element)
        Checks if the given element is a one of the models in this project.
        Parameters:
        element - element to check.
        Returns:
        true if given element is a one of the models in this project.
      • getModel

        @OpenApi
        @Deprecated
        @CheckForNull
        public Model getModel()
        Deprecated.
        Returns root primary model - root container of all model structure. This method should not be called anymore for Cameo Enterprise Data Warehouse projects, because the returned model does not include the root models of modules (attached projects). getModels() or getPrimaryModel() should be used instead as needed.
        Returns:
        root model element
        Throws:
        java.lang.IllegalStateException - in case root element is not a Model, but a Package
      • getPrimaryModel

        @OpenApi
        public Package getPrimaryModel()
        Returns the primary (main) model of the project (not including the ones from modules).
        Returns:
        the primary model of the project. Null is return only if project is closed or corrupted.
      • getModels

        @OpenApi
        public java.util.List<Package> getModels()
        Returns a list of models in the project (the primary model of the project and all the models of the modules (attached projects)).
        Returns:
        model.
      • getSymbolElementMap

        @OpenApi
        public SymbolElementMap getSymbolElementMap()
        Get element symbol map.
        Returns:
        symbol element map
      • getRepositoryListenerRegistry

        @OpenApi
        public RepositoryListenerRegistry getRepositoryListenerRegistry()
        Return listener registry for repository.
        Returns:
        listener registry for repository.
      • getProject

        public Project getProject()
        Specified by:
        getProject in interface MDElement
        Overrides:
        getProject in class com.nomagic.magicdraw.uml.MDElementImpl
      • getRemoteID

        @CheckForNull
        public java.lang.String getRemoteID()
      • isLoaded

        public boolean isLoaded()
        Return value of "loaded" flag
        Returns:
        true if this project was loaded from some location or is saved to some location (is not just created from template)
      • getLoadedFrom

        public ProjectDescriptor getLoadedFrom()
        Return location from were project was loaded. For Teamwork project returns local file if project was saved into file (or was loaded from file).
        Returns:
        location of project
      • setLoaded

        public void setLoaded​(boolean loaded)
        Set "Loaded" flag for project. Project created from template is not "loaded"
        Parameters:
        loaded - loaded flag
      • getProject

        @OpenApi
        public static Project getProject​(@CheckForNull
                                         BaseElement element)
        Returns Project for given element
        Parameters:
        element - project element.
        Returns:
        project in which given element exists.
      • getTransactionsManager

        public com.nomagic.magicdraw.uml.transaction.MDTransactionManager getTransactionsManager()
        Return transaction manager.
        Returns:
        transaction manager
      • isNeedLocallySave

        public boolean isNeedLocallySave()
        Teamwork projects after commit can be saved locally, using flag to hold state about teamwork projects were saved locally.
        Returns:
        true if project was not locally saved. Should be used only for teamwork projects.
      • setNeedLocallySave

        public void setNeedLocallySave​(boolean locallySaved)
      • setPrimaryProject

        public void setPrimaryProject​(IProject primaryProject)
      • setPrimaryProject

        public void setPrimaryProject​(IProject primaryProject,
                                      boolean closeOldProject,
                                      boolean changeModel)
        Set primary project.
        Parameters:
        primaryProject - project to set.
        closeOldProject - close old project (do not close project when adding to teamwork).
        changeModel - dispose old model (do not dispose UML model when adding to teamwork)
      • getPrimaryProject

        @OpenApi
        public IPrimaryProject getPrimaryProject()
        Primary project of MagicDraw project.
        Returns:
        primary project.
      • addFeature

        public static void addFeature​(java.lang.String feature)
        Register a feature for a new project.
        Parameters:
        feature - feature name
      • removeFeature

        public static void removeFeature​(java.lang.String feature)
        Unregister a feature for a new project.
        Parameters:
        feature - name
      • getFeatures

        public static java.util.Set<java.lang.String> getFeatures()
        Return registered features for a new project.
        Returns:
        registered features for a new project.
      • getUMLModelStorageFeature

        public com.nomagic.magicdraw.uml.UMLModelProjectFeature getUMLModelStorageFeature()
      • getDiagramContentListeners

        public com.nomagic.utils.ExtendedPropertyChangeSupport getDiagramContentListeners()
        Returns listeners of all diagrams content.
        Returns:
        diagrams content listeners
      • isNew

        public boolean isNew()
        Returns:
        true if project is new and was never saved
      • getLocationUri

        public org.eclipse.emf.common.util.URI getLocationUri()
        Get URI location according the primary project.
        Returns:
        URI.
      • isFrozen

        public boolean isFrozen()
        Returns:
        true if project is frozen
      • setFrozen

        public void setFrozen​(boolean frozen)
        Set frozen flag. Frozen projects do not provide some data.
        Parameters:
        frozen - frozen flag
      • isReady

        public boolean isReady()
        Returns:
        true if project is ready to use. It has primary project, it is not closed.
      • isEditable

        public boolean isEditable()
        Description copied from interface: BaseElement
        Checks if element can be edited. Element can not be edited in teamwork project, or it is used "by reference" from module.
        Specified by:
        isEditable in interface BaseElement
        Overrides:
        isEditable in class com.nomagic.magicdraw.uml.MDElementImpl
        Returns:
        true, if element can be edited.
      • isRelocatedIn

        public boolean isRelocatedIn()
        Returns:
        true if project is in relocating state
      • setRelocatingIn

        public void setRelocatingIn​(boolean relocating)
        Set project state to relocating. Project is relocating if project content is coming from other project. This other project is in "relocated" state.
        Parameters:
        relocating - relocating state
      • refAddInstance

        public void refAddInstance​(javax.jmi.reflect.RefBaseObject instance)
        Specified by:
        refAddInstance in interface com.nomagic.uml2.ext.jmi.reflect.ElementRegistry
      • refRemoveInstance

        public void refRemoveInstance​(javax.jmi.reflect.RefBaseObject instance)
        Specified by:
        refRemoveInstance in interface com.nomagic.uml2.ext.jmi.reflect.ElementRegistry
      • refAllOfClasses

        public java.util.Collection<javax.jmi.reflect.RefBaseObject> refAllOfClasses​(java.util.Set<com.nomagic.uml2.ext.jmi.reflect.AbstractRefClass> classes)
        Specified by:
        refAllOfClasses in interface com.nomagic.uml2.ext.jmi.reflect.ElementRegistry
      • isUpdatingProjectsInCurrentThread

        public boolean isUpdatingProjectsInCurrentThread()
        Specified by:
        isUpdatingProjectsInCurrentThread in interface com.nomagic.uml2.ext.jmi.reflect.ElementRegistry
      • isPreloadProject

        public boolean isPreloadProject()
        Specified by:
        isPreloadProject in interface com.nomagic.uml2.ext.jmi.reflect.ElementRegistry
      • getBinaryStreamAtticCleaner

        public com.nomagic.magicdraw.core.BinaryStreamAtticCleaner getBinaryStreamAtticCleaner()
      • getHasUnloadedManuallyReachableModules

        public boolean getHasUnloadedManuallyReachableModules()
        Returns:
        the hasUnloadedManuallyReachableModules
      • isReloadRecommended

        public boolean isReloadRecommended()
        Indicates whether project reload is recommended to see the full effects of some user action. This is set when certain conditions are detected during, for example, project save. So that code that controls the save can check the flag after the save and reload if possible
        Returns:
        true if project reload is recommended, false otherwise
      • setReloadRecommended

        public void setReloadRecommended​(boolean reloadRecommended)
        Sets new value for isReloadRecommended()
        Parameters:
        reloadRecommended - the new value
      • getCookieSet

        public CookieSet getCookieSet()
      • getOptionalService

        @CheckForNull
        public <T> T getOptionalService​(java.lang.Class<T> type)
        Returns project service of the specified type.
        Type Parameters:
        T - type.
        Parameters:
        type - class of a service.
        Returns:
        service.
      • getService

        public <T> T getService​(java.lang.Class<T> type)
        Returns project service of the specified type.
        Type Parameters:
        T - type.
        Parameters:
        type - class of a service.
        Returns:
        service.
        Throws:
        java.lang.IllegalArgumentException - if the requested service is not registered.
      • register

        public <T> void register​(java.lang.Class<T> type,
                                 T service)
        Registers the specified service.
        Type Parameters:
        T - type of the service.
        Parameters:
        type - service type.
        service - the service.
      • getServiceProvider

        public com.nomagic.magicdraw.core.project.service.providers.ProjectServiceProvider getServiceProvider()
      • isEMFProxiesSupported

        public boolean isEMFProxiesSupported()
        Specified by:
        isEMFProxiesSupported in interface com.nomagic.uml2.ext.jmi.reflect.ElementRegistry