#**##set( $role = $elem )
#**##set( $partnerRole = $role.PartnerRole )
#**##set( $ref = ($role.Adornment == 3) )
#**##set( $name = $role.AttrName )
#**##set( $type = $utility.getEMFTypeAsString($role.Target, $engine, true) )
#**##set( $transient = false )##FIX ME: transient possible?
#**##set( $ordered = $utility.isOrdered($role) )
#**##set( $containment = ($partnerRole.Adornment == 2) )
#**##set( $card = $role.Card )
#**##if ( $role.Target.hasKeyInStereotypes("reference") )
#*   *#$engine.error("EMF does not support associations with stereotype 'reference' as target!",$elem)
#**##else
#*   *#<eStructuralFeatures xsi:type="ecore:EReference" name="$name" ordered="$ordered" lowerBound="$card.LowerBound" upperBound="##
#*   *##if ($card.UpperBound >= 2147483647 || $partnerRole.qualifier )## check, if upper cardinality is maxInt; FIX ME: qualifier results in to-n! todo: support keys
#*      *#-1##
#*   *##else
#*      *#$card.UpperBound##
#*   *##end
#**#" eType="$type" transient="$transient" containment="$containment"#if( !$ref ) eOpposite="$type/$partnerRole.AttrName"#end>
#*   *##parse("$lang/default:classDiag/class/annotations.vm" )
#*   *#</eStructuralFeatures>
#**##end