/**
* Copyright (c) 2012-2016 Marsha Chechik, Alessio Di Sandro, Michalis Famelis,
* Rick Salay.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Alessio Di Sandro - Implementation.
*/
package edu.toronto.cs.se.mmint.mid.operator.impl;
import java.lang.reflect.InvocationTargetException;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import edu.toronto.cs.se.mmint.MMINTException;
import edu.toronto.cs.se.mmint.mid.operator.ConversionOperator;
import edu.toronto.cs.se.mmint.mid.operator.OperatorPackage;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Conversion Operator</b></em>'.
* <!-- end-user-doc -->
*
* @generated
*/
public class ConversionOperatorImpl extends OperatorImpl implements ConversionOperator {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
public ConversionOperatorImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass() {
return OperatorPackage.Literals.CONVERSION_OPERATOR;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
switch (operationID) {
case OperatorPackage.CONVERSION_OPERATOR___CLEANUP:
try {
cleanup();
return null;
}
catch (Throwable throwable) {
throw new InvocationTargetException(throwable);
}
}
return super.eInvoke(operationID, arguments);
}
/**
* @generated NOT
*/
@Override
public String toString() {
return "[conv] " + super.toString();
}
/**
* @generated NOT
*/
@Override
public void deleteType() throws MMINTException {
super.deleteType();
getInputs().get(0).getTarget().getConversionOperators().remove(this);
}
/**
* @generated NOT
*/
public void cleanup() throws Exception {
//TODO MMINT[OPERATOR] Integrate better with new apis, e.g. a transformation output now can be a model rel and it implies the converted model
// do nothing
}
} //ConversionOperatorImpl