#**##if( !$toMany )
#*   *##set( $directSetAccess = true )
#**##end
#**##parse( "jmi/default:storyPattern/object/import.vm" )
#**##set( $localVars = $engine.getFromInformation("localVars") )
#**##if( $set && !$toMany )
#*   *##set( $imports = $engine.getFromInformation("imports") )
#*   *##set( $return = $imports.addToImports("de.upb.tools.fca.*") )
#*   *##if($createVar)
#*      *##set( $return = $localVars.addLocalVariable($name, "FHashSet", $object) )
#*   *##end
#**##else
#*   *##if($createVar)
#*      *##set( $return = $localVars.addLocalVariable($name, $object.InstanceOf, $object) )
#*   *##end
#**##end
#**#
#**##if($multi)
#*   *##if($multi == "NextOf")
#*   *#fujaba_index = #if($ref)${getX}#else${getX1}"${getXparameter}"${getX2}#end.indexOf($mparam);
#*      *##if($mIndex)
#*      *#if((fujaba_index >= 0)&&(0 < $mIndex) && ($mIndex < #if($ref)${getX}#else${getX1}"${getXparameter}"${getX2}#end.size() - fujaba_index)){  
#*      *##else
#*      *#if((fujaba_index >= 0)&&(fujaba_index < #if($ref)${getX}#else${getX1}"${getXparameter}"${getX2}#end.size()-1)){
#*      *##end  
#*   *#  $tmpName = ($qualifiedName)#if($ref)${getX}#else${getX1}"${getXparameter}"${getX2}#end.get(fujaba_index #if($mIndex)+$mIndex#else +1#end);
#*      *#  }
#*      *#else{
#*      *#  $tmpName = null;
#*      *#}
#*   *##elseif($multi == "PreviousOf")
#*   *#fujaba_index = #if($ref)${getX}#else${getX1}"${getXparameter}"${getX2}#end.indexOf($mparam);
#*      *##if($mIndex)
#*         *#if((fujaba_index >= 0)&&(0 < $mIndex) && ($mIndex <= fujaba_index)){  
#*      *##else
#*         *#if(fujaba_index > 0 ){
#*      *##end
#*   *#  $tmpName = ($qualifiedName)#if($ref)${getX}#else${getX1}"${getXparameter}"${getX2}#end.get(fujaba_index #if($mIndex)-$mIndex#else -1#end);
#*      *#  }
#*      *#else{
#*      *#  $tmpName = null;
#*      *#}
#*   *##end
#**##elseif($range)
#*   *#try
#*   *#{
#**#  $tmpName = ($qualifiedName)#if($ref)${getX}#else${getX1}"${getXparameter}"${getX2}#end.get($range);
#*   *#}
#*   *#catch(IndexOutOfBoundsException e)
#*   *#{
#*   *#  throw new IllegalArgumentException("get${targetRoleName}At${range}");
#*   *#}
#**##else
#*   *###toOne
#*   *##if($source == "toOneNotNavigable")
#*      *#$tmpName = ${getX1}"${getXparameter}"${getX2};
#*   *##else
#*      *##if($object.reflectiveTypeExpr)
#*         *##set($item = "${iter}__item")
#*         *#java.lang.Object $item = ${iter}.next();
#*         *#if(${naviPath}.refClass($paramType).refAllOfClass().contains(${item})){
#*         *#$tmpName = ($qualifiedName)$item;
#*         *#}
#*      *##else
#*         *#$tmpName = $source;
#*      *##end
#*   *##end
#**##end
#**##if ( $typeCast )
#*   *#// ensure correct type and really bound
#*   *##if ( $optional && !$toMany )
#*      *#if ( $tmpName instanceof $qualifiedName )
#*      *#{
#*      *#   $name = ($qualifiedName) $tmpName;
#*      *#}
#*      *#
#*   *##else
#*      *#JavaSDM.ensure ( $tmpName instanceof $qualifiedName );
#*      *#$name = ($qualifiedName) $tmpName;
#*      *#
#*   *##end
#**##elseif ( !$optional )
#*   *##parse( "jmi/default:storyPattern/object/bound.vm" )
#**##end
