001// license-header java merge-point 002// 003// Attention: generated code (by Metafacade.vsl) - do not modify! 004// 005package org.andromda.metafacades.uml; 006 007/** 008 * Specification of an argument used to pass information into or out of an invocation of a 009 * behavioral feature. Parameters are allowed to be treated as connectable elements. Parameters have 010 * support for streaming, exceptions, and parameter sets. 011 * 012 * Metafacade interface to be used by AndroMDA cartridges. 013 */ 014public interface ParameterFacade 015 extends ModelElementFacade 016{ 017 /** 018 * Indicates the metafacade type (used for metafacade mappings). 019 * 020 * @return boolean always <code>true</code> 021 */ 022 public boolean isParameterFacadeMetaType(); 023 024 /** 025 * TODO: Model Documentation for org.andromda.metafacades.uml.ParameterFacade.defaultValue 026 * @return String 027 */ 028 public String getDefaultValue(); 029 030 /** 031 * UML2: A representation of the literals of the enumeration 'Parameter Effect Kind': CREATE, 032 * READ, UPDATE, DELETE. The datatype ParameterEffectKind is an enumeration that indicates the 033 * effect of a behavior on values passed in or out of its parameters. 034 * @return String 035 */ 036 public String getEffect(); 037 038 /** 039 * If this parameter is located on an event, this will represent that event. 040 * @return EventFacade 041 */ 042 public EventFacade getEvent(); 043 044 /** 045 * The name to use for accessors getting this parameter from a bean. 046 * @return String 047 */ 048 public String getGetterName(); 049 050 /** 051 * Fully Qualified TypeName, determined in part by multiplicity (for UML2). For UML14, same as 052 * getterName. 053 * @return String 054 */ 055 public String getGetterSetterTypeName(); 056 057 /** 058 * Fully Qualified implementation class of TypeName, determined in part by multiplicity (for 059 * UML2). If upper multiplicity =1, same as getterSetterTypeName. 060 * @return String 061 */ 062 public String getGetterSetterTypeNameImpl(); 063 064 /** 065 * the lower value for the multiplicity 066 * -only applicable for UML2 067 * @return int 068 */ 069 public int getLower(); 070 071 /** 072 * If this parameter is located on an operation, this will represent that operation. 073 * @return OperationFacade 074 */ 075 public OperationFacade getOperation(); 076 077 /** 078 * The name to use for accessors getting this parameter in a bean. 079 * @return String 080 */ 081 public String getSetterName(); 082 083 /** 084 * A Classifier is a classification of instances - it describes a set of instances that have 085 * features 086 * in common. Can specify a generalization hierarchy by referencing its general classifiers. It 087 * may be 088 * a Class, DataType, PrimitiveType, Association, Collaboration, UseCase, etc. Can specify a 089 * generalization hierarchy by referencing its general classifiers. Has the capability to own 090 * collaboration uses. These collaboration uses link a collaboration with the classifier to give 091 * a 092 * description of the workings of the classifier. Classifier is defined to be a kind of 093 * templateable 094 * element so that a classifier can be parameterized. It is also defined to be a kind of 095 * parameterable 096 * element so that a classifier can be a formal template parameter. 097 * @return ClassifierFacade 098 */ 099 public ClassifierFacade getType(); 100 101 /** 102 * the upper value of the multiplicity (will be -1 for *) 103 * -only applicable for UML2 104 * @return int 105 */ 106 public int getUpper(); 107 108 /** 109 * Indicates if the default value is present. 110 * @return boolean 111 */ 112 public boolean isDefaultValuePresent(); 113 114 /** 115 * UML2: Returns the value of the 'Is Exception' attribute. The default value is "false". Tells 116 * whether an output parameter may emit a value to the exclusion of the other outputs. 117 * @return boolean 118 */ 119 public boolean isException(); 120 121 /** 122 * True if this parameter is an 'in' parameter. 123 * @return boolean 124 */ 125 public boolean isInParameter(); 126 127 /** 128 * True if this parameter is an inout parameter. 129 * @return boolean 130 */ 131 public boolean isInoutParameter(); 132 133 /** 134 * If upper>1 or upper==unlimited. Only applies to UML2. For UML14, always false. 135 * @return boolean 136 */ 137 public boolean isMany(); 138 139 /** 140 * UML2 Only: Is parameter ordered within the Collection type. Ordered+Unique determines the 141 * implementation Collection Type. For UML14, always false. 142 * @return boolean 143 */ 144 public boolean isOrdered(); 145 146 /** 147 * True if this parameter is an 'out' parameter. 148 * @return boolean 149 */ 150 public boolean isOutParameter(); 151 152 /** 153 * True if this parameter is readable, aka an in-parameter, or this feature is unspecified. 154 * @return boolean 155 */ 156 public boolean isReadable(); 157 158 /** 159 * Whether or not this parameter is considered required (i.e must a non-empty value). 160 * @return boolean 161 */ 162 public boolean isRequired(); 163 164 /** 165 * Whether or not this parameter represents a return parameter. 166 * @return boolean 167 */ 168 public boolean isReturn(); 169 170 /** 171 * If Parameter type isMany (UML2), is the parameter unique within the Collection. Unique+Sorted 172 * determines pareter implementation type. For UML14, always false. 173 * @return boolean 174 */ 175 public boolean isUnique(); 176 177 /** 178 * True if this parameter is writable, aka an out-parameter, or this feature is unspecified. 179 * @return boolean 180 */ 181 public boolean isWritable(); 182}