Modeling tools

General OpenAPI Changes

Removed constants:

  • com.nomagic.magicdraw.properties.PropertyID#SHOW_SMART_MANIPULATORS
  • com.nomagic.magicdraw.uml2.datatypes.OSDecimalFormatSymbolsGetter#INFINITY
  • com.nomagic.uml2.UML2Constants#STANDARD_PROFILE_L2
  • com.nomagic.uml2.UML2Constants#STANDARD_PROFILE_L3

Removed constructors:

  • com.nomagic.magicdraw.core.modules.ModulesService.UsedViaReadOnlyAutomaticUsageException#UsedViaReadOnlyAutomaticUsageException(com.nomagic.ci.persistence.spi.decomposition.AttachmentSet)

Removed methods:

  • com.nomagic.magicdraw.core.modules.ModulesService.UsedViaReadOnlyAutomaticUsageException#getOffendingUsages
  • com.nomagic.uml2.finder.AbstractByQualifiedNameFinder#isMatchingElement
  • com.nomagic.uml2.finder.AbstractByQualifiedNameFinder#isFinalPartOfQualifiedName
  • com.nomagic.uml2.finder.AbstractByQualifiedNameFinder#splitQualifiedName
  • com.nomagic.uml2.ext.jmi.reflect.AbstractRepository#isRawMode  - always returned false
  • com.nomagic.uml2.ext.jmi.reflect.AbstractRepository#setRawMode - empty implementation
  • com.nomagic.magicdraw.uml.MDElement#accept


Changes:

The changes consist of classes being moved to other packages and renamed.

Old APINew API

com.nomagic.uml2.ext.jmi.reflect.AbstractRepository#nextVersion

com.nomagic.uml2.ext.jmi.reflect.AbstractRepository#nextBasicVersion

com.nomagic.uml2.ext.jmi.smartlistener.SmartEventSupport#registerConfigcom.nomagic.uml2.ext.jmi.smartlistener.SmartEventSupport#register
com.nomagic.uml2.ext.jmi.smartlistener.SmartEventSupport#unregisterConfigcom.nomagic.uml2.ext.jmi.smartlistener.SmartEventSupport#unregister
com.nomagic.magicdraw.utils.PriorityProvidercom.nomagic.utils.PriorityProvider
com.nomagic.magicdraw.core.options.OptionsGroup#getIconcom.nomagic.magicdraw.core.options.OptionsGroup#getGroupIcon
com.nomagic.ui.ResizableIconAdaptercom.dassault_systemes.modeler.foundation.common.ui.ResizableIconAdapter
com.nomagic.magicdraw.uml.MDElement#getProjectcom.nomagic.magicdraw.core.Project#getProject(com.nomagic.magicdraw.uml.BaseElement)
com.nomagic.magicdraw.uml.MDElement#getProjectImplcom.nomagic.magicdraw.core.Project#getProject(com.nomagic.magicdraw.uml.BaseElement)
com.nomagic.magicdraw.uml.MDElementcom.nomagic.magicdraw.uml.core.MDElement
com.nomagic.magicdraw.uml.ModelElementProvidercom.nomagic.magicdraw.uml.core.ModelElementProvider
com.nomagic.magicdraw.uml.ModelElementsProvider

com.nomagic.magicdraw.uml.core.ModelElementsProvider

com.nomagic.magicdraw.uml.AbstractDiagramType

com.nomagic.magicdraw.uml.symbols.AbstractDiagramType

com.nomagic.magicdraw.ui.AbstractDiagramSurfacePainter

com.dassault_systemes.modeler.foundation.diagram.AbstractDiagramSurfacePainter

Class

  • com.nomagic.magicdraw.uml.CompartmentElement

was removed from OpenAPI and moved to another package 

  • com.dassault_systemes.modeler.foundation.common.compartments.CompartmentElement

PresentationElement OpenAPI Changes

The changes consist of Property related calls being moved to PresentationElementsManager, and some method name changes.

Old APINew API
com.nomagic.magicdraw.uml.symbols.PresentationElement#getPreferredSizecom.nomagic.magicdraw.uml.symbols.PresentationElement#getPreferredDimension
com.nomagic.magicdraw.uml.symbols.PresentationElement#getPropertycom.nomagic.magicdraw.openapi.uml.PresentationElementsManager#getProperty
com.nomagic.magicdraw.uml.symbols.PresentationElement#addPropertycom.nomagic.magicdraw.openapi.uml.PresentationElementsManager#addProperty
com.nomagic.magicdraw.uml.symbols.PresentationElement#getPropertyManagercom.nomagic.magicdraw.openapi.uml.PresentationElementsManager#getPropertyManager
com.nomagic.magicdraw.uml.symbols.PresentationElement#getPreferredSizecom.nomagic.magicdraw.uml.symbols.PresentationElement#getPreferredDimension
com.nomagic.magicdraw.uml.symbols.PresentationElement#getDiagramPresentationElementcom.nomagic.magicdraw.uml.symbols.DiagramPresentationElement#get
com.nomagic.magicdraw.uml.symbols.PresentationElement#useParentPropertiescom.nomagic.magicdraw.uml.symbols.PresentationElement#useParentStyle

com.nomagic.magicdraw.uml.Visitor was refactored by moving symbols specific methods  to

  • com.nomagic.magicdraw.uml.PresentationElementVisitor and
  • com.nomagic.magicdraw.uml.symbols.BasePresentationElementVisitor

com.nomagic.magicdraw.uml.InheritanceVisitor was refactored by moving symbols specific methods  to

  • com.nomagic.magicdraw.uml.symbols.BasePresentationElementInheritanceVisitor and
  • com.nomagic.magicdraw.uml.PresentationElementInheritanceVisitor

Project Merge/Compare OpenAPI Changes

com.nomagic.magicdraw.merge.CompareUtil#getDifference API:

  • CompareUtil#getDifference(com.nomagic.magicdraw.core.Project, com.nomagic.magicdraw.core.project.ProjectDescriptor, com.nomagic.magicdraw.core.project.ProjectDescriptor, com.nomagic.utils.ErrorHandler<java.lang.Exception>, com.nomagic.magicdraw.merge.Optimization, java.util.Set<com.nomagic.magicdraw.diff.ModuleInfo>)

was changed with:

  • CompareUtil#getDifference(com.nomagic.magicdraw.core.Project, com.nomagic.magicdraw.core.project.ProjectDescriptor, com.nomagic.magicdraw.core.project.ProjectDescriptor, com.nomagic.utils.ErrorHandler<java.lang.Exception>, com.nomagic.magicdraw.merge.Optimization)


Removed:

com.nomagic.magicdraw.merge.ProjectDifference.getRejectedModules() method removed that incorrectly returned empty collection.

com.nomagic.magicdraw.diff.RwMergeModeConstraint class removed.

Remote project-related OpenAPI Changes

Changes:

Class com.nomagic.magicdraw.esi.EsiUtils changed to Interface. Most methods are no longer static and work with a specific TWC server connection. To get an instance, use com.nomagic.magicdraw.esi.EsiUtils#get(), com.nomagic.magicdraw.esi.EsiUtils#get(com.nomagic.ci.persistence.IPrimaryProject)

Old APINew API
EsiUtils.getCommandLinePasswordManager(...)EsiUtils.getPasswordManager(...)
EsiUtils.getCategoryID(...)EsiUtils.getCategory(...)
EsiUtils#getCategory(String)EsiUtils#getCategoryInfoByResourceID(String)
EsiUtils.getNewBranch(...)EsiUtils.getNewEsiBranch(...)
EsiUtils#setNotifyOnNewTags(com.nomagic.magicdraw.esi.project.project.EsiPrimaryProject, com.nomagic.ci.persistence.IAttachedProject, java.util.Collection<String>)EsiUtils#setNotifyOnNewTags(com.nomagic.ci.persistence.IPrimaryProject, com.nomagic.ci.persistence.IAttachedProject, java.util.Collection<String>)
EsiUtils#cloneProject(org.eclipse.emf.common.util.URI, String,String,String)EsiUtils#cloneProject(org.eclipse.emf.common.util.URI, String, String, java.util.UUID)
ITeamworkService.isLiveConnection()ITeamworkService.isConnected()
TeamworkService.getInstance(java.lang.String) TeamworkService.getInstance()
com.nomagic.magicdraw.teamwork2.esi.protect.CommandLinePasswordManagercom.nomagic.magicdraw.teamwork2.esi.protect.PasswordManager

Removed:

ITeamworkService.setAsLastUsedService() method removed due to empty implementation

ITeamworkService setActiveInstance(ITeamworkService) method removed. The method was dangerous.

Dependency Matrix OpenAPI Changes

DependencyEditor(com.nomagic.magicdraw.dependencymatrix.datamodel.editing.DependencyEditor) methods createAddActions, createEditActions, canCreate, canEdit now require ElementNode(com.nomagic.magicdraw.dependencymatrix.datamodel.ElementNode) type parameters instead of Element (com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element).

Old APINew API
DependencyEditor#createAddActions(PersistenceManager, Element, Element, AbstractMatrixCell, ActionsCategory, ActionsCategory,ActionsCategory)DependencyEditor#createAddActions(PersistenceManager, ElementNode, ElementNode, AbstractMatrixCell, ActionsCategory, ActionsCategory, ActionsCategory)
DependencyEditor#createEditActions(PersistenceManager, Element, Element, AbstractMatrixCell, ActionsCategory, ActionsCategory)DependencyEditor#createEditActions(PersistenceManager, ElementNode,ElementNode, AbstractMatrixCell, ActionsCategory, ActionsCategory)
DependencyEditor#canCreate(PersistenceManager, Element, Element, AbstractMatrixCell)DependencyEditor#canCreate(PersistenceManager, ElementNode, ElementNode, AbstractMatrixCell)
DependencyEditor#canEdit(PersistenceManager, Element, Element, AbstractMatrixCell)DependencyEditor#canEdit(PersistenceManager, ElementNode, ElementNode, AbstractMatrixCell)

Diagram Layout OpenAPI Changes

Following the deprecation of layout related code in 2024xRefresh3, the OpenAPI is removed in this version.

  • The coupling between a diagram and layouters has been removed.
  • All of the following changes have been replaced with a separate class for layouting - com.nomagic.magicdraw.uml.symbols.layout.Layouting (see Layouting symbols in the diagram).
  • Layout related methods removed from AbstractDiagramPresentationElement instead use Layouting class

All concrete layouters are no longer OpenAPI, constructors related to Environment Options removed.

This includes layouters:

  • DiagramLayouter
  • AbstractDiagramLayouter
  • AbstractHierarchicDiagramLayouter
  • AbstractLinkDiagramLayouter
  • CircularDiagramLayouter
  • GridDiagramLayouter
  • OrganicDiagramLayouter
  • OrthogonalDiagramLayouter
  • TreeDiagramLayouter
  • HierarchicDiagramLayouter
  • ActivityDiagramLayouter
  • BusinessProcessDiagramLayouter
  • CompositeStructureDiagramLayouter
  • ClassDiagramLayouter
  • OrderedHierarchicDiagramLayouter
  • StateDiagramLayouter
  • OrganicLinkDiagramLayouter
  • OrthogonalLinkDiagramLayouter
  • LayoutManager

They are also moved from com.nomagic.magicdraw.uml.symbols.layout package to com.dassault_systemes.modeler.foundation.diagram.ylayout

Graph classes no longer OpenAPI:

  • com.nomagic.magicdraw.uml.symbols.layout.BaseGraph
  • com.nomagic.magicdraw.uml.symbols.layout.UMLGraph

Magic Model Analyst / Cameo Simulation Toolkit

API Changes

Renamed packages:

Old PackageNew Package
fUML.Semantics.Activities.IntermediateActivitiescom.nomagic.magicdraw.simulation.fuml.activities.intermediate
fUML.Semantics.Classes.Kernelcom.nomagic.magicdraw.simulation.fuml.classes
fUML.Semantics.CommonBehaviors.BasicBehaviorscom.nomagic.magicdraw.simulation.fuml.behaviors
fUML.Semantics.CommonBehaviors.Communicationscom.nomagic.magicdraw.simulation.fuml.behaviors.communications
fUML.Semantics.Loci.LociL1com.nomagic.magicdraw.simulation.fuml.loci

Renamed tag due to removal of Web Server for Cameo Simulation Toolkit Plugin from:

com.nomagic.magicdraw.simulation.SimulationProfile.SimulationConfigStereotype#isStartWebServer → com.nomagic.magicdraw.simulation.SimulationProfile.SimulationConfigStereotype#isShowUIAsHTML

Simulation options API changes:

Old APINew API
com.nomagic.magicdraw.simulation.execution.SimulationExecution#getSimulationOptionscom.nomagic.magicdraw.simulation.execution.SimulationExecution#getOptions
com.nomagic.magicdraw.simulation.execution.SimulationOptions#getOptioncom.nomagic.magicdraw.simulation.execution.SimulationOptions#get
com.nomagic.magicdraw.simulation.execution.SimulationOptions#addOptioncom.nomagic.magicdraw.simulation.execution.SimulationOptions#set

Renamed option due to removal of Web Server for Cameo Simulation Toolkit Plugin

com.nomagic.magicdraw.simulation.execution.SimulationOptions#START_WEB_SERVER → com.nomagic.magicdraw.simulation.execution.SimulationOptions#SHOW_UI_AS_HTML

Removed:

  • com.nomagic.magicdraw.simulation.execution.SimulationOptions#ADD_CONTROL_PANEL
  • com.nomagic.magicdraw.simulation.SimulationProfile.SimulationConfigStereotype#isAddControlPanel


In addition to the method renaming, the package of the Object_ class has changed from:

  • fUML.Semantics.Classes.Kernel.Object_#getExecution

to

  • com.nomagic.magicdraw.simulation.fuml.classes.Object_#getExecutions


Class com.nomagic.magicdraw.simulation.fuml.fUMLHelper methods removed:

  • com.nomagic.magicdraw.simulation.fuml.fUMLHelper#getFeatureValueByName(StructuredValue, String, Locus) - Use shorter overloaded version without the Locus parameter
  • com.nomagic.magicdraw.simulation.fuml.fUMLHelper#getFeatureValue(StructuredValue, StructuralFeature, Locus) - Use shorter overloaded version without the Locus parameter
  • com.nomagic.magicdraw.simulation.fuml.fUMLHelper#getFeatureValue - Use com.nomagic.magicdraw.simulation.fuml.classes.StructuredValue#getFeatureValue directly
  • com.nomagic.magicdraw.simulation.fuml.fUMLHelper#getObjectFromValueList(ValueList, Type, int) - Use shorter overloaded version without the Type parameter


Downgraded com.nomagic.magicdraw.simulation.engine.AbstractExecutionEngineDescriptor to InternalAPI.