/** * 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; import edu.toronto.cs.se.mmint.MMINTException; import edu.toronto.cs.se.mmint.mid.ExtendibleElement; import edu.toronto.cs.se.mmint.mid.ExtendibleElementEndpoint; import edu.toronto.cs.se.mmint.mid.GenericElement; /** * <!-- begin-user-doc --> * A representation of the model object '<em><b>Generic Endpoint</b></em>'. * <!-- end-user-doc --> * * <!-- begin-model-doc --> * The endpoint for a generic operator definition. * <!-- end-model-doc --> * * <p> * The following features are supported: * </p> * <ul> * <li>{@link edu.toronto.cs.se.mmint.mid.operator.GenericEndpoint#getMetatargetUri <em>Metatarget Uri</em>}</li> * </ul> * * @see edu.toronto.cs.se.mmint.mid.operator.OperatorPackage#getGenericEndpoint() * @model * @generated */ public interface GenericEndpoint extends ExtendibleElementEndpoint { /** * Returns the value of the '<em><b>Metatarget Uri</b></em>' attribute. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Metatarget Uri</em>' attribute isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> * <!-- begin-model-doc --> * The target uri, at the upper MID level (types: empty; instances: the target type uri). * <!-- end-model-doc --> * @return the value of the '<em>Metatarget Uri</em>' attribute. * @see #setMetatargetUri(String) * @see edu.toronto.cs.se.mmint.mid.operator.OperatorPackage#getGenericEndpoint_MetatargetUri() * @model required="true" * @generated */ String getMetatargetUri(); /** * Sets the value of the '{@link edu.toronto.cs.se.mmint.mid.operator.GenericEndpoint#getMetatargetUri <em>Metatarget Uri</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Metatarget Uri</em>' attribute. * @see #getMetatargetUri() * @generated */ void setMetatargetUri(String value); /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * <!-- begin-model-doc --> * {@inheritDoc}<br /> * Gets the generic supertype endpoint of this generic type endpoint. * <!-- end-model-doc --> * @model kind="operation" * annotation="http://www.eclipse.org/emf/2002/GenModel body='ExtendibleElementEndpoint supertype = super.getSupertype();\nreturn (supertype == null) ? null : (GenericEndpoint) supertype;'" * @generated */ GenericEndpoint getSupertype(); /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * <!-- begin-model-doc --> * {@inheritDoc}<br /> * Gets the generic target of this generic endpoint. * <!-- end-model-doc --> * @model kind="operation" required="true" * annotation="http://www.eclipse.org/emf/2002/GenModel body='GenericElement target = MIDTypeRegistry.getType(getMetatargetUri());\nreturn target;'" * @generated */ GenericElement getTarget(); /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * <!-- begin-model-doc --> * {@inheritDoc}<br /> * Sets the generic target of this generic endpoint. * <!-- end-model-doc --> * @model newTargetRequired="true" * annotation="http://www.eclipse.org/emf/2002/GenModel body='setMetatargetUri(newTarget.getUri());'" * @generated */ void setTarget(ExtendibleElement newTarget); /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * <!-- begin-model-doc --> * {@inheritDoc}<br /> * Gets the generic type endpoint of this generic instance endpoint. * <!-- end-model-doc --> * @model kind="operation" required="true" * annotation="http://www.eclipse.org/emf/2002/GenModel body='ExtendibleElementEndpoint metatype = super.getMetatype();\nreturn (metatype == null) ? null : (GenericEndpoint) metatype;'" * @generated */ GenericEndpoint getMetatype(); /** * <!-- begin-user-doc --> Creates and adds a generic instance endpoint of this generic type endpoint to an Instance * MID. * * @param targetGeneric * The generic that is the target of the new generic endpoint. * @param containerOperator * The operator that will contain the new generic endpoint. * @return The created generic endpoint. * @throws MMINTException * If this is not a generic type endpoint. <!-- end-user-doc --> * @model required="true" exceptions="edu.toronto.cs.se.mmint.mid.MMINTException" targetGenericRequired="true" containerOperatorRequired="true" * @generated */ GenericEndpoint createInstance(GenericElement targetGeneric, Operator containerOperator) throws MMINTException; /** * <!-- begin-user-doc --> Creates and adds a generic instance endpoint of this generic type endpoint to a Workflow * MID. * * @param targetGeneric * The generic that is the target of the new generic endpoint. * @param containerOperator * The operator that will contain the new generic endpoint. * @return The created generic endpoint. * @throws MMINTException * If this is not a generic type endpoint. <!-- end-user-doc --> * @model required="true" exceptions="edu.toronto.cs.se.mmint.mid.MMINTException" targetGenericRequired="true" containerOperatorRequired="true" * @generated */ GenericEndpoint createWorkflowInstance(GenericElement targetGeneric, Operator containerOperator) throws MMINTException; } // GenericEndpoint