/* * Copyright (c) 2005, 2007 IBM Corporation and others. * 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: * IBM - initial API and implementation * * $Id: TemplateSignature.java,v 1.14 2007/10/23 15:54:22 jbruck Exp $ */ package org.eclipse.uml2.uml; import java.util.Map; import org.eclipse.emf.common.util.DiagnosticChain; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EClass; /** * * A representation of the model object 'Template Signature'. * * * * A template signature bundles the set of formal template parameters for a templated element. * * *

* The following features are supported: *

*

* * @see org.eclipse.uml2.uml.UMLPackage#getTemplateSignature() * @model * @generated */ public interface TemplateSignature extends Element { /** * Returns the value of the 'Parameter' reference list. * The list contents are of type {@link org.eclipse.uml2.uml.TemplateParameter}. * * * * The ordered set of all formal template parameters for this template signature. * * @return the value of the 'Parameter' reference list. * @see org.eclipse.uml2.uml.UMLPackage#getTemplateSignature_Parameter() * @model required="true" * @generated */ EList getParameters(); /** * Returns the value of the 'Template' container reference. * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.TemplateableElement#getOwnedTemplateSignature Owned Template Signature}'. *

* This feature subsets the following features: *

*

* * * * The element that owns this template signature. * * @return the value of the 'Template' container reference. * @see #setTemplate(TemplateableElement) * @see org.eclipse.uml2.uml.UMLPackage#getTemplateSignature_Template() * @see org.eclipse.uml2.uml.TemplateableElement#getOwnedTemplateSignature * @model opposite="ownedTemplateSignature" required="true" transient="false" ordered="false" * @generated */ TemplateableElement getTemplate(); /** * Sets the value of the '{@link org.eclipse.uml2.uml.TemplateSignature#getTemplate Template}' container reference. * * * @param value the new value of the 'Template' container reference. * @see #getTemplate() * @generated */ void setTemplate(TemplateableElement value); /** * Returns the value of the 'Owned Parameter' containment reference list. * The list contents are of type {@link org.eclipse.uml2.uml.TemplateParameter}. * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.TemplateParameter#getSignature Signature}'. *

* This feature subsets the following features: *

*

* * * * The formal template parameters that are owned by this template signature. * * @return the value of the 'Owned Parameter' containment reference list. * @see org.eclipse.uml2.uml.UMLPackage#getTemplateSignature_OwnedParameter() * @see org.eclipse.uml2.uml.TemplateParameter#getSignature * @model opposite="signature" containment="true" resolveProxies="true" * @generated */ EList getOwnedParameters(); /** * Creates a new {@link org.eclipse.uml2.uml.TemplateParameter} and appends it to the 'Owned Parameter' containment reference list. * * * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.TemplateParameter} to create. * @return The new {@link org.eclipse.uml2.uml.TemplateParameter}. * @see #getOwnedParameters() * @generated */ TemplateParameter createOwnedParameter(EClass eClass); /** * Creates a new {@link org.eclipse.uml2.uml.TemplateParameter} and appends it to the 'Owned Parameter' containment reference list. * * * @return The new {@link org.eclipse.uml2.uml.TemplateParameter}. * @see #getOwnedParameters() * @generated */ TemplateParameter createOwnedParameter(); /** * * * * Parameters must own the elements they parameter or those elements must be owned by the element being templated. * templatedElement.ownedElement->includesAll(parameter.parameteredElement - parameter.ownedParameteredElement) * @param diagnostics The chain of diagnostics to which problems are to be appended. * @param context The cache of context-specific information. * * @model * @generated */ boolean validateOwnElements(DiagnosticChain diagnostics, Map context); } // TemplateSignature