001// license-header java merge-point 002// 003// Attention: generated code (by Metafacade.vsl) - do not modify! 004// 005package org.andromda.metafacades.uml; 006 007import java.util.Collection; 008import org.andromda.core.metafacade.ModelValidationMessage; 009 010/** 011 * Represents the model object 'Template Parameter Substitution'. Relates the actual parameter(s) to 012 * a formal template parameter as part of a template binding. 013 * 014 * Metafacade interface to be used by AndroMDA cartridges. 015 */ 016public interface TemplateArgumentFacade 017{ 018 /** 019 * Indicates the metafacade type (used for metafacade mappings). 020 * 021 * @return boolean always <code>true</code> 022 */ 023 public boolean isTemplateArgumentFacadeMetaType(); 024 025 /** 026 * Provides any required initialization of the metafacade. 027 */ 028 void initialize(); 029 030 /** 031 * Gets the metafacade that acts as the <code>owner</code> of this metafacade. 032 * (for example: an operation is an owner of its parameters, etc). This is used 033 * by AndroMDA's validation framework to provide more context as to where the 034 * error has occurred. 035 * @return Object the Validation Owner 036 */ 037 public Object getValidationOwner(); 038 039 /** 040 * Gets the name of the metafacade used within validation messages. This provides 041 * the full name of the metafacade. 042 * @return String the Validation Name 043 */ 044 public String getValidationName(); 045 046 /** 047 * Performs validation of any invariants found on this model element 048 * and stores the messages within the <code>validationMessages</code> 049 * collection. 050 * 051 * @param validationMessages the collection of messages to which additional 052 * validation messages will be added if invariants are broken. 053 */ 054 void validateInvariants(Collection<ModelValidationMessage> validationMessages); 055 056 /** 057 * Represents a model element. It may be an Element or NamedElement. A named element is an 058 * element in a 059 * model that may have a name. An element is a constituent of a model. As such, it has the 060 * capability 061 * of owning other elements. 062 * @return ModelElementFacade 063 */ 064 public ModelElementFacade getElement(); 065}