#**### params: source, target, link
#**##set( $link = $elem )
#**##set( $path = $link.Expression )
#**##set( $range = $utility.nullIfEmpty($link.getRange()) )
#**##set( $linkNegative = $link.Type == 1 )
#**##set( $targetNegative = $target.Type == 2 )
#**##set( $reflective = $link.isReflective() )
#**##if( !$path )
#*   *##set( $role = $link.getCorrespondingRole($target) )
#*   *##set( $partnerRole = $role.PartnerRole )
#*   *##if($role.hasKeyInStereotypes("pluralized"))
#*      *##set( $targetRoleName = $utility.pluralize($utility.upFirstChar($role.attrName)) )
#*   *##else
#*      *##if("class" == $role.attrName)                                 
#*         *##set( $targetRoleName = "$utility.upFirstChar($role.attrName)_" )
#*      *##else
#*         *##set( $targetRoleName = $utility.nullIfEmpty($utility.upFirstChar($role.attrName)) )
#*      *##end
#*   *##end
#*   *###set( $toOne = $role.card.upperBound == 1 && !$partnerRole.qualifier )
#*   *##set( $toOne = $role.card.upperBound == 1 )
#**##end
#**##set( $targetName = $target.getObjectName() )
#**##set( $targetType = $target.InstanceOf.Name )
#**##set( $targetSet = $target.isSet() )
#**##set( $targetOptional = ($target.isOptional() && !$targetSet) )
#**##if ( $targetSet )
#*   *##set( $collectionName = $targetName )
#*   *##set( $targetName = "fujaba__TmpObject$utility.upFirstChar($targetName)" )
#**##end
#**##set( $sourceName = $source.getObjectName() )
#**##set( $sourceType = $source.InstanceOf.Name )
#**##set( $sourceSet = $source.isSet() )
#**##if ( $sourceSet )
#*   *##set( $sourceName = "fujaba__TmpObject$utility.upFirstChar($sourceName)" )
#**##end
#**##set( $object = $target )
#**##set( $ordered = $utility.isOrdered($role) )
#**##if ( ${role.InheritedCodeStyle} )#set( $style = "$lang/${role.InheritedCodeStyle.Name}:" )
#**##else#set( $style = "java/default:" )#end
#*   *##if ( ${partnerRole.InheritedCodeStyle} )#set( $partnerStyle = "$lang/${partnerRole.InheritedCodeStyle.Name}:" )
#*   *##else#set( $partnerStyle = "$lang/default:" )#end
#*      *##parse("$!{style}storyPattern/link/multiFirstLast.vm" )