/*
 * Copyright (c) 2004 NoMagic, Inc. All Rights Reserved.
 */
package com.nomagic.magicdraw.examples.mymodeltransformation;

import com.nomagic.magicdraw.modeltransformations.impl.any_to_any.AnyToAnyModelTransformation;
import com.nomagic.magicdraw.openapi.uml.ReadOnlyElementException;
import com.nomagic.magicdraw.openapi.uml.SessionManager;
import com.nomagic.uml2.ext.jmi.helpers.StereotypesHelper;
import com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Class;
import com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element;
import com.nomagic.uml2.ext.magicdraw.mdprofiles.Stereotype;

import java.util.ArrayList;
import java.util.Collection;

/**
 * Custom transformation class
 *
 * @see com.nomagic.magicdraw.modeltransformations.ModelTransformation
 * @author Sarunas Misius
 */
public class MyModelTransformation extends AnyToAnyModelTransformation
{
	@Override
	protected void customTransformationForElement(Element original, Collection<Element> mapped) throws ReadOnlyElementException
	{
		if (original instanceof Class)
		{
			for (Element target : new ArrayList<>(mapped))
			{
				//transform class
				if (target instanceof Class)
				{
					SessionManager.getInstance().checkReadOnly(target);
					Class mc = (Class) target;
					Collection<Stereotype> stereotypes = StereotypesHelper.getStereotypes(mc);
					ArrayList<Stereotype> al = new ArrayList<>(stereotypes);
					for (Stereotype anAl : al)
					{
						StereotypesHelper.removeStereotype(mc, anAl);
					}
				}
			}
		}
    }
}