Class Project

java.lang.Object
com.dassault_systemes.modeler.foundation.project.ModelElementProjectImpl
com.nomagic.magicdraw.core.Project
All Implemented Interfaces:
com.dassault_systemes.modeler.foundation.model.ModelElementRegistry, com.dassault_systemes.modeler.foundation.project.ModelElementProject, BaseElement, MDElement, com.nomagic.uml2.ext.jmi.reflect.ElementRegistry, com.nomagic.uml2.ext.jmi.reflect.RepositoryProvider, com.nomagic.uml2.project.ElementProject, Cloneable, Comparable

@OpenApi public class Project extends com.dassault_systemes.modeler.foundation.project.ModelElementProjectImpl implements com.nomagic.uml2.project.ElementProject, MDElement
The Project class represents main storage of all project data like: main package, all diagrams and diagram windows.
  • Field Details

    • COMMAND_EXECUTED

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

      @OpenApi @Deprecated public static final String SELECTION_CHANGED
      Deprecated.
      now SelectionProvider fires selection changed, use SelectionProvider.SelectionChangedListener The diagram objects selecting event type and naming.
      See Also:
    • DIAGRAM_OPENED

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

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

      @OpenApi @Deprecated public static final String DIAGRAM_EDITED
      Deprecated.
      not used anymore
      Any diagram properties editing event type and naming.
      See Also:
    • DIAGRAM_ACTIVATED

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

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

      public static final 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:
    • FILE_NAME_PROPERTY

      public static final String FILE_NAME_PROPERTY
      Project file name property
      See Also:
    • DIRTY_PROPERTY

      public static final String DIRTY_PROPERTY
      Project "dirty" flag change
      See Also:
  • Constructor Details

    • Project

      public Project()
      Constructor creates project.
  • Method Details

    • isCreateBrowser

      public static boolean isCreateBrowser()
    • setCreateBrowser

      public static void setCreateBrowser(boolean createBrowser)
    • getElementsIDs

      public static Collection<String> getElementsIDs(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(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
    • getDSL

      public com.nomagic.magicdraw.dsl.DSL getDSL()
      Returns project DSL service instance.
      Returns:
      the manager.
    • getDSLManager

      @Deprecated public com.nomagic.magicdraw.ui.dsl.DSLManager getDSLManager()
      Deprecated.
      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.
    • getElementByIDQuerier

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

      @CheckForNull @OpenApi public DiagramPresentationElement getActiveDiagram()
      Returns currently active diagram.
      Returns:
      currently active diagram presentation element.
      See Also:
    • getActiveAbstractDiagram

      @CheckForNull public AbstractDiagramPresentationElement getActiveAbstractDiagram()
    • getDiagrams

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

      @OpenApi public Collection<DiagramPresentationElement> getDiagrams(@CheckForNull 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:
    • 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

      @CheckForNull public String getTitle()
      Returns:
      project title
    • setTitle

      public void setTitle(String title)
    • getFileName

      @CheckForNull @OpenApi public 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 String getDirectory()
      Deprecated.
      use #getFile.getParent
      Returns project directory.

      Returns:
      project location directory.
    • setDirectory

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

      Parameters:
      dir - the new project directory.
    • setName

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

      Parameters:
      name - the new project name.
    • getFile

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

      public void setFileName(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
    • getCounter

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

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

      public com.nomagic.magicdraw.ui.ProjectEditorWindowsManager getProjectEditorWindowsManager()
      Returns:
      editor 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
    • isUMLProject

      public boolean isUMLProject()
      To check if project is for UML models.
      Returns:
      true if project is suitable for creating UML models
    • 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

      @Deprecated @OpenApi public void setDirty(boolean dirty)
      Marks this project modified.
      Parameters:
      dirty - new dirty flag.
    • setDirty

      @OpenApi public void setDirty(boolean dirty, @CheckForNull 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 String oldID)
      Register the object by id. The record about this object and its old id is removed.
      Specified by:
      addElementByID in interface com.dassault_systemes.modeler.foundation.model.ModelElementRegistry
      Parameters:
      obj - the object to register.
      oldID - the old id of the object.
    • 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
    • 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.dassault_systemes.modeler.foundation.model.ModelElementRegistry
      Parameters:
      obj - the object.
    • addToQueryChangeRegistry

      public void addToQueryChangeRegistry(com.dassault_systemes.modeler.foundation.model.ModelElement element)
    • removeFromQueryChangeRegistry

      public void removeFromQueryChangeRegistry(com.dassault_systemes.modeler.foundation.model.ModelElement modelElement)
    • getElementByID

      @OpenApi @CheckForNull public BaseElement getElementByID(@CheckForNull String id)
      Return the element with given id.
      Specified by:
      getElementByID in interface com.dassault_systemes.modeler.foundation.model.ModelElementRegistry
      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(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.
    • isElementDisposed

      @OpenApi public static boolean isElementDisposed(@CheckForNull com.dassault_systemes.modeler.foundation.model.ModelElement 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.
      Specified by:
      isDisposed in interface com.dassault_systemes.modeler.foundation.model.ModelElementRegistry
      Parameters:
      element - element
      Returns:
      true if element is disposed
    • getElementsByIDs

      public Collection<? extends BaseElement> getElementsByIDs(Collection<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 Collection<? extends BaseElement> getElementsByIDs(Collection<String> ids, Supplier<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.
    • getAllIDS

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

      public 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
    • isProjectClosed

      public boolean isProjectClosed()
      Checks if this project was already disposed(closed). Such project cannot be activated any more.
      Specified by:
      isProjectClosed in interface com.dassault_systemes.modeler.foundation.project.ModelElementProject
      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()
      Specified by:
      isClosing in interface com.dassault_systemes.modeler.foundation.project.ModelElementProject
      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

      @OpenApi 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(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.
    • addWindow

      public void addWindow(ProjectWindow window)
    • removeWindow

      public void removeWindow(ProjectWindow window)
    • getWindows

      public Collection<ProjectWindow> getWindows()
    • hasWindow

      public boolean hasWindow(String id)
    • getWindow

      public ProjectWindow getWindow(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.
    • resetDynamicRepository

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

      @OpenApi public ElementsFactory getElementsFactory()
      Description copied from interface: com.nomagic.uml2.project.ElementProject
      Provides UML elements factory
      Specified by:
      getElementsFactory in interface com.nomagic.uml2.project.ElementProject
      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.
    • isModel

      public boolean isModel(Package element)
      Description copied from interface: com.nomagic.uml2.project.ElementProject
      Checks if the given element is a one of the models in this project.
      Specified by:
      isModel in interface com.nomagic.uml2.project.ElementProject
      Parameters:
      element - element to check
      Returns:
      true if given package belongs to models of this project
      See Also:
      • ElementProject.getModels()
    • getModel

      @OpenApi @Deprecated @CheckForNull public Model getModel()
      Deprecated.
      deprecated because of ambiguity with historical API evolution
      Returns root primary model - root container of all model structure. This method should not be called anymore for TWC 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:
      IllegalStateException - in case root element is not a Model, but a Package
    • getPrimaryModel

      @OpenApi public Package getPrimaryModel()
      Description copied from interface: com.nomagic.uml2.project.ElementProject
      Returns a primary model of this project. Other models comes from modules (attached projects).
      Specified by:
      getPrimaryModel in interface com.nomagic.uml2.project.ElementProject
      Returns:
      primary model
      See Also:
      • ElementProject.getModels()
    • getModels

      @OpenApi public List<Package> getModels()
      Description copied from interface: com.nomagic.uml2.project.ElementProject
      Returns a list of models in the project (the primary model of the project and all the models of the modules (attached projects)).
      Specified by:
      getModels in interface com.nomagic.uml2.project.ElementProject
      Returns:
      models
    • 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.
    • getRemoteID

      @CheckForNull public 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 Collection<? extends BaseElement> elements)
      Returns Project from first given element
      Parameters:
      elements - project elements
      Returns:
      project in which first given element exists
    • getProject

      @OpenApi public static Project getProject(@CheckForNull BaseElement element)
      Returns Project for a given element
      Parameters:
      element - project element.
      Returns:
      project in which a given element exists.
      See Also:
      • ProjectProvider
    • getExporterDescription

      @CheckForNull public XmiExporterDescription getExporterDescription()
    • setExporterDescription

      public void setExporterDescription(XmiExporterDescription exporterDescription)
    • getTransactionsManager

      public TransactionManager 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(com.nomagic.ci.persistence.IProject primaryProject)
    • setPrimaryProject

      public void setPrimaryProject(com.nomagic.ci.persistence.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 com.nomagic.ci.persistence.IPrimaryProject getPrimaryProject()
      Primary project of MagicDraw project.
      Returns:
      primary project.
    • addFeature

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

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

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

      public com.nomagic.magicdraw.uml.UMLModelProjectFeature getUMLModelStorageFeature()
    • 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.
    • 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 Collection<javax.jmi.reflect.RefBaseObject> refAllOfClasses(Set<com.nomagic.uml2.ext.jmi.reflect.AbstractRefClass> classes)
      Specified by:
      refAllOfClasses 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
      Specified by:
      isPreloadProject in interface com.dassault_systemes.modeler.foundation.model.ModelElementRegistry
    • getBinaryStreamAtticCleaner

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

      public boolean getHasUnloadedManuallyReachableModules()
      Returns:
      the hasUnloadedManuallyReachableModules
    • invalidateHasUnloadedManuallyReachableModules

      public void invalidateHasUnloadedManuallyReachableModules()
    • toDebugRepresentation

      public String toDebugRepresentation()
    • register

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

      public boolean isEMFProxiesSupported()
      Description copied from interface: com.nomagic.uml2.ext.jmi.reflect.ElementRegistry
      Returns whether the registry supports EMF proxies.
      Specified by:
      isEMFProxiesSupported in interface com.nomagic.uml2.ext.jmi.reflect.ElementRegistry
      Specified by:
      isEMFProxiesSupported in interface com.dassault_systemes.modeler.foundation.model.ModelElementRegistry
      Returns:
      true if the element registry supports EMF proxies, otherwise - false.
    • generateID

      public String generateID()
      Generate ID.
    • getID

      public String getID()
      Description copied from interface: BaseElement
      Returns the ID of the Element. If the ID is null, new id for an element is generated. Element id is persistence and does not change during project save/load.
      Specified by:
      getID in interface BaseElement
      Returns:
      the ID of the Element.
    • sGetID

      public final String sGetID()
      Description copied from interface: BaseElement
      Returns the actual ID of the Element. May return null if ID was not generated or set for this element.
      Specified by:
      sGetID in interface BaseElement
      Returns:
      the ID of the Element.
      See Also:
    • setID

      public void setID(String id)
      Description copied from interface: BaseElement
      Sets the specified ID to the Element.
      Specified by:
      setID in interface BaseElement
      Parameters:
      id - the id to be set.
    • clone

      public Object clone() throws CloneNotSupportedException
      Specified by:
      clone in interface BaseElement
      Overrides:
      clone in class Object
      Throws:
      CloneNotSupportedException
    • addPropertyChangeListener

      public void addPropertyChangeListener(PropertyChangeListener listener)
      Description copied from interface: BaseElement
      Registers the listener to the element. The given listener will get notifications about property changes in this element.
      Specified by:
      addPropertyChangeListener in interface BaseElement
      Parameters:
      listener - the PropertyChangeListener to be added.
      See Also:
    • hasListeners

      public boolean hasListeners()
    • removePropertyChangeListener

      public void removePropertyChangeListener(PropertyChangeListener listener)
      Description copied from interface: BaseElement
      Unregisters the given listener from the element. The given listener will not get any notifications about property changes in this element.
      Specified by:
      removePropertyChangeListener in interface BaseElement
      Parameters:
      listener - the PropertyChangeListener to be removed.
      See Also:
    • removeAllPropertyChangeListeners

      public void removeAllPropertyChangeListeners()
      Description copied from interface: BaseElement
      Removes all property change listeners from this element.
      Specified by:
      removeAllPropertyChangeListeners in interface BaseElement
    • firePropertyChange

      public void firePropertyChange(String propertyName, @CheckForNull Object oldValue, @CheckForNull Object newValue)
      Description copied from interface: BaseElement
      Delegates firePropertyChange to the PropertyChangeSupport, the member of this class, which reports a bound property update to any registered listeners. No event is fired if old and new values are equal or null.
      Specified by:
      firePropertyChange in interface BaseElement
      Parameters:
      propertyName - the programmatic name of the property that was changed.
      oldValue - the old value of the property
      newValue - the new value of the property
      See Also:
    • atInsert

      public void atInsert()
      Description copied from interface: BaseElement
      This method is called then this element is added into the project.
      Specified by:
      atInsert in interface BaseElement
    • dispose

      public void dispose()
      Destroys the project. After this method call project can not be used any more.
      Specified by:
      dispose in interface BaseElement
    • accept

      public void accept(Visitor visitor) throws Exception
      Description copied from interface: MDElement
      Method accepts a visitor, and calls method "visit<class name>(this)" of a visitor. See "Visitor" pattern for more details.
      Specified by:
      accept in interface MDElement
      Parameters:
      visitor - which visits this element.
      Throws:
      Exception
    • accept

      public void accept(AbstractVisitor visitor) throws Exception
      Description copied from interface: BaseElement
      Method accepts a visitor, and calls method visit < class name > (this) of visitor.
      Specified by:
      accept in interface BaseElement
      Parameters:
      visitor - which visits this element.
      Throws:
      Exception
    • getName

      @OpenApi public String getName()
      Returns project name.
      Specified by:
      getName in interface MDElement
      Returns:
      project name.
    • getHumanName

      public String getHumanName()
      Description copied from interface: BaseElement
      Returns human representation of the element. Usually human name is constructed from element class type and name.
      Specified by:
      getHumanName in interface BaseElement
      Returns:
      the human name of the element.
    • getProjectImpl

      public Project getProjectImpl()
      Description copied from interface: MDElement
      This method is deprecated and will be removed soon.
      Specified by:
      getProjectImpl in interface MDElement
      Returns:
      project
    • getSortKeys

      public final com.dassault_systemes.modeler.foundation.common.sort.SortKeys getSortKeys()
      Description copied from interface: MDElement
      Implementation of getSortKeys() from Sortable interface.
      Specified by:
      getSortKeys in interface MDElement
      Returns:
      the array of predefined sort keys.
    • getHumanType

      public String getHumanType()
      Description copied from interface: BaseElement
      Returns human representation of the element type. Contains only element type without element name.
      Specified by:
      getHumanType in interface BaseElement
      Returns:
      the human type of the element.
    • getResourceID

      public String getResourceID()
      Specified by:
      getResourceID in interface MDElement
    • canAdd

      public final boolean canAdd(BaseElement element, boolean checkPermissions)
      Description copied from interface: BaseElement
      Checks if this element can add a given element.
      Following rules must be true to have result true:
      1.if checkTeamworkLock == true, this element must be locked for edit.
      2.element can add given element as instance (class types are checked).
      3.element can add given element as child (a given element is not a parent of current element etc.).
      Specified by:
      canAdd in interface BaseElement
      Parameters:
      element - the element to add.
      checkPermissions - check or not permissions.
      Returns:
      true if an element can add the given element as a child.
    • canDeleteChild

      public boolean canDeleteChild(BaseElement child)
      Description copied from interface: BaseElement
      Checks if given element can be deleted from this element. Following rules must be true to have result true: 1.this element must be editable. 2.project must be editable. 3.the type of given child must be valid for teamwork lock for edit operation (for example, class, package etc., not Attribute).
      Specified by:
      canDeleteChild in interface BaseElement
      Parameters:
      child - a given child
      Returns:
      true, if the given element can be deleted from the current element.
    • canBeDeleted

      public boolean canBeDeleted()
      Description copied from interface: BaseElement
      Checks if an element can be deleted from a project. Element cannot be deleted if it is not isEditable(), parent is not set, or parent does not allow to remove this element.
      Specified by:
      canBeDeleted in interface BaseElement
      Returns:
      true, if an element can be deleted from a project.
      See Also:
    • canAddInstance

      public boolean canAddInstance(BaseElement o)
      Description copied from interface: BaseElement
      Checks if this object can add element of given type. Current implementation returns false.
      Specified by:
      canAddInstance in interface BaseElement
      Returns:
      true if this object can elements of a given type.
    • canAddChild

      public boolean canAddChild(BaseElement o)
      Specified by:
      canAddChild in interface MDElement
    • isEditable

      public boolean isEditable()
      Description copied from interface: BaseElement
      Checks if an element can be edited.
      Specified by:
      isEditable in interface BaseElement
      Returns:
      true, if an element can be edited.
    • canAddChild

      public boolean canAddChild()
      Description copied from interface: BaseElement
      Checks if new elements can be added to this element
      Specified by:
      canAddChild in interface BaseElement
      Returns:
      true, if new sub elements can be added.
    • getObjectParent

      @CheckForNull public BaseElement getObjectParent()
      Description copied from interface: BaseElement
      Returns the element parent. This implementation returns null. Should be overridden in subclasses.
      Specified by:
      getObjectParent in interface BaseElement
      Returns:
      the parent of the element.
    • compareTo

      public int compareTo(@Nonnull Object o)
      Compares sort key at index 1 with given element's sort key at index 1.
      Specified by:
      compareTo in interface Comparable
      Parameters:
      o - the given object to compare to.
      Returns:
      key's comparison result(String.compareTo()).
    • isParentOf

      public boolean isParentOf(BaseElement obj)
      Description copied from interface: BaseElement
      Returns true, if current element is parent of given element. Return false in this implementation.
      Specified by:
      isParentOf in interface BaseElement
      Parameters:
      obj - the given element(possible child).
      Returns:
      true if obj is the parent of this object.
    • getClassType

      public Class getClassType()
      Description copied from interface: BaseElement
      Gets the type of the element class. Every element has its own ClassType. Usually this class type is class of element or class interface of an element. All types are registered in ClassTypes.
      Specified by:
      getClassType in interface BaseElement
      Returns:
      the type of the element.
    • toString

      public String toString()
      Returns string representation of this element. Useful for debugging purposes.
      Overrides:
      toString in class Object
    • canChangeParent

      public boolean canChangeParent(Collection elements, BaseElement newParent)
      Description copied from interface: BaseElement
      Returns true, if element can change parent.
      Specified by:
      canChangeParent in interface BaseElement
      Parameters:
      elements - collection of the elements, whose will change the parent together with this.
      newParent - new parent object.
      Returns:
      true if an element can change parent.