Skip to content
Snippets Groups Projects
Commit 91ad96ba authored by Simon Barner's avatar Simon Barner
Browse files

Add migrateHierarchicElementBase()

refs 3219
parent db7973ff
No related branches found
No related tags found
No related merge requests found
......@@ -7,7 +7,7 @@ DimensionUtils.java 8508de2b017f5ae76a86cdd0df7ce64a0a5f096e GREEN
EllipseLayoutUtils.java e5f4f8eac4e4755c84d43a231d346ba348a5d806 GREEN
LayoutDataUtils.java ee3798cb83903737f146ab1efe22ce667fbbc730 GREEN
LayoutModelElementFactory.java cf1e7a5b23ae33087e0b8ccf32c37435bc3409fe GREEN
MigrationUtils.java 549105d77987a4efd5a2bdb9972875cea83aa43e GREEN
MigrationUtils.java 14f792317241963d077a0145c5fe3fe1dfcbf54c YELLOW
OffsetOrientationUtils.java d7afdad0ee75667e04eb4b76e94216dd1ae93070 GREEN
PointUtils.java 63c055e7c6062c564ceb5d900f3edce15384efc8 GREEN
PointsUtils.java 5c134ea1a85d290b81634567def23b2f44e0f2ba GREEN
......
......@@ -21,9 +21,11 @@ import static org.fortiss.tooling.kernel.utils.EcoreUtils.copy;
import org.eclipse.emf.common.util.BasicEList;
import org.eclipse.emf.common.util.EList;
import org.fortiss.tooling.base.model.base.ConnectorBase;
import org.fortiss.tooling.base.model.base.HierarchicElementBase;
import org.fortiss.tooling.base.model.element.IAnnotatedSpecification;
import org.fortiss.tooling.base.model.element.IConnection;
import org.fortiss.tooling.base.model.element.IConnector;
import org.fortiss.tooling.base.model.element.IHierarchicElement;
import org.fortiss.tooling.base.model.element.IModelElement;
import org.fortiss.tooling.base.model.element.IModelElementReference;
import org.fortiss.tooling.base.model.element.IModelElementSpecification;
......@@ -66,6 +68,30 @@ public class MigrationUtils { // NO_UCD
delete(oldConnectorBase);
}
/**
* Migrates an {@code oldConnectorBase} (of an (old) concrete sub-type of {@link ConnectorBase})
* to a {@code newConnectorBase} (of another (new) concrete sub-type of {@link ConnectorBase} )
* that is owned by the given new {@link IHierarchicElement},
* including all relevant attributes and children.
*
* @param oldConnectorBase
* Old {@link ConnectorBase} to be migrated. Side effect: Removed from the model and
* deleted.
* @param newConnectorBase
* New {@link ConnectorBase} which should replace {@code oldConnectorBase}. It must
* be created by the caller of this method.
* @param newElement
* Element that will own the {@code newConnectorBase}.
*/
public static void migrateConnectorBase(ConnectorBase oldConnectorBase,
ConnectorBase newConnectorBase, IHierarchicElement newElement) {
migrateINamedCommentedElement(oldConnectorBase, newConnectorBase);
migrateILayoutedModelElement(oldConnectorBase, newConnectorBase);
migrateIModelElement(oldConnectorBase, newConnectorBase);
newElement.getConnectors().add(newConnectorBase);
}
/**
* Migrates all properties defined in the {@link IConnector} interface from
* {@code oldIConnector} to {@code newIConnector}.
......@@ -169,6 +195,14 @@ public class MigrationUtils { // NO_UCD
newINamedCommentedElement.setComment(oldINamedCommentedElement.getComment());
}
/** Migrates an {@link HierarchicElementBase} to an new {@link HierarchicElementBase}. */
public static void migrateHierarchicElementBase(HierarchicElementBase oldElement,
HierarchicElementBase newElement) {
migrateIModelElement(oldElement, newElement);
migrateILayoutedModelElement(oldElement, newElement);
migrateINamedCommentedElement(oldElement, newElement);
}
/**
* Migrates all properties defined in the {@link IAnnotatedSpecification} interface from
* {@code oldIAnnotatedSpecification} to {@code newIAnnotatedSpecification}.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment