#**##parse("$lang/default:classDiag/assoc/annotationShort.vm")
#**#$visibility $type getFrom$methodSuffix ( int index )##
#**##if( $targetClassIsInterface )
#*   *#;
#**##else
#*   *#
#*   *#{
#*   *#   if (index >= 0 && index < sizeOf$methodSuffix ())
#*   *#   {
#*   *#      return ($type) this.${name}.get (index);
#*   *#   }
#*   *#   else
#*   *#   {
#*   *#      throw new IllegalArgumentException ("get${methodSuffix}At(" + index + ")" );
#*   *#   }
#*   *#}
#**##end
#**#
#**##parse("$lang/default:classDiag/assoc/annotationShort.vm")
#**#$visibility int indexOf$methodSuffix ( $type value )##
#**##if( $targetClassIsInterface )
#*   *#;
#**##else
#*   *#
#*   *#{
#*   *#   return ((this.$name == null)
#*   *#           ? -1
#*   *#           : this.${name}.indexOf (value));
#*   *#}
#**##end
#**#
#**##parse("$lang/default:classDiag/assoc/annotationShort.vm")
#**#$visibility int indexOf$methodSuffix ( $type value, int index )##
#**##if( $targetClassIsInterface )
#*   *#;
#**##else
#*   *#
#*   *#{
#*   *#   return ((this.$name == null)
#*   *#	       ? -1
#*   *#	       : this.${name}.indexOf (value, index));
#*   *#}
#**##end
#**#
#**##parse("$lang/default:classDiag/assoc/annotationShort.vm")
#**#$visibility int lastIndexOf$methodSuffix ( $type value )##
#**##if( $targetClassIsInterface )
#*   *#;
#**##else
#*   *#
#*   *#{
#*   *#   return ((this.$name == null)
#*   *#            ? -1
#*   *#            : this.${name}.lastIndexOf (value));
#*   *#}
#**##end
#**#
#**##parse("$lang/default:classDiag/assoc/annotationShort.vm")
#**#$visibility int lastIndexOf$methodSuffix ( $type value, int index )##
#**##if( $targetClassIsInterface )
#*   *#;
#**##else
#*   *#
#*   *#{
#*   *#   return ((this.$name == null)
#*   *#            ? -1
#*   *#            : this.${name}.lastIndexOf (value, index));
#*   *#}
#**##end
#**#
#**##parse("$lang/default:classDiag/assoc/annotationShort.vm")
#**#$visibility boolean isBeforeOf$methodSuffix ( $type leftObject, $type rightObject)##
#**##if( $targetClassIsInterface )
#*   *#;
#**##else
#*   *#
#*   *#{
#*   *#   if ($name == null)
#*   *#   {
#*   *#      return false;
#*   *#   }
#*   *#   else
#*   *#   {
#*   *#      return ${name}.isBefore (leftObject, rightObject);
#*   *#   }
#*   *#}
#**##end
#**#
#**##parse("$lang/default:classDiag/assoc/annotationShort.vm")
#**#$visibility boolean isAfterOf$methodSuffix ( $type leftObject, $type rightObject)##
#**##if( $targetClassIsInterface )
#*   *#;
#**##else
#*   *#
#*   *#{
#*   *#   if ($name == null)
#*   *#   {
#*   *#      return false;
#*   *#   }
#*   *#   else
#*   *#   {
#*   *#      return ${name}.isAfter (leftObject, rightObject);
#*   *#   }
#*   *#}
#**##end
#**#
#**##parse("$lang/default:classDiag/assoc/annotationShort.vm")
#**#$visibility $type getNextOf$methodSuffix ( $type object )##
#**##if( $targetClassIsInterface )
#*   *#;
#**##else
#*   *#
#*   *#{
#*   *#   if ($name == null)
#*   *#   {
#*   *#      return null;
#*   *#   }
#*   *#   else
#*   *#   {
#*   *#      return ($type) ${name}.getNextOf (object);
#*   *#   }
#*   *#}
#**##end
#**#
#**##parse("$lang/default:classDiag/assoc/annotationShort.vm")
#**#$visibility $type getNextOf$methodSuffix ( $type object, int index)##
#**##if( $targetClassIsInterface )
#*   *#;
#**##else
#*   *#
#*   *#{
#*   *#   if ($name == null)
#*   *#   {
#*   *#      return null;
#*   *#   }
#*   *#   else
#*   *#   {
#*   *#      return ($type) ${name}.getNextOf (object, index);
#*   *#   }
#*   *#}
#**##end
#**#
#**##parse("$lang/default:classDiag/assoc/annotationShort.vm")
#**#$visibility $type getPreviousOf$methodSuffix ( $type object)##
#**##if( $targetClassIsInterface )
#*   *#;
#**##else
#*   *#
#*   *#{
#*   *#   if ($name == null)
#*   *#   {
#*   *#      return null;
#*   *#   }
#*   *#   else
#*   *#   {
#*   *#      return ($type) ${name}.getPreviousOf (object);
#*   *#   }
#*   *#}
#**##end
#**#
#**##parse("$lang/default:classDiag/assoc/annotationShort.vm")
#**#$visibility $type getPreviousOf$methodSuffix ( $type object, int index )##
#**##if( $targetClassIsInterface )
#*   *#;
#**##else
#*   *#
#*   *#{
#*   *#   if ($name == null)
#*   *#   {
#*   *#      return null;
#*   *#   }
#*   *#   else
#*   *#   {
#*   *#      return ($type) ${name}.getPreviousOf (object, index);
#*   *#   }
#*   *#}
#**##end
#**#
#**##parse("$lang/default:classDiag/assoc/annotationShort.vm")
#**#$visibility boolean addAfterOf$methodSuffix (#if($partnerKey)$partnerKey partnerKey, #end
#**# $type refObject, $type value)##
#**##if( $targetClassIsInterface )
#*   *#;
#**##else
#*   *#
#*   *#{
#*   *#   boolean changed = false;
#*   *#   if ($name != null)
#*   *#   {
#*   *#      int index = ${name}.indexOf (refObject);
#**#      changed = addTo$methodSuffix (#if($partnerKey)partnerKey, #end
#*   *#index+1, value);
#*   *#   }
#*   *#   return changed;
#*   *#}
#**##end
#**#
#**##parse("$lang/default:classDiag/assoc/annotationShort.vm")
#**#$visibility boolean addBeforeOf$methodSuffix (#if($partnerKey)$partnerKey partnerKey, #end
#**# $type refObject, $type value)##
#**##if( $targetClassIsInterface )
#*   *#;
#**##else
#*   *#
#*   *#{
#*   *#   boolean changed = false;
#*   *#   if ($name != null)
#*   *#   {
#*   *#      int index = ${name}.indexOf (refObject);
#**#      changed = addTo$methodSuffix (#if($partnerKey)partnerKey, #end
#*   *#index, value);
#*   *#   }
#*   *#   return changed;
#*   *#}
#**##end
#**#
#**##parse("$lang/default:classDiag/assoc/annotationShort.vm")
#**#$visibility boolean addTo$methodSuffix (#if($partnerKey)$partnerKey partnerKey, #end
#**#int index, $type value)##
#**##if( $targetClassIsInterface )
#*   *#;
#**##else
#*   *#
#*   *#{
#*   *#   boolean changed = false;
#*   *#
#*   *#   if (value != null)
#*   *#   {
#*   *#      if (this.$name == null)
#*   *#      {
#*   *#         this.$name = new $container ($!constParams); // or FTreeSet () or FLinkedList ()
#*   *#      }
#*   *#      int oldIndex = this.indexOf$methodSuffix (value);
#*   *#      if (oldIndex != index)
#*   *#      {
#*   *#         try
#*   *#         {
#*   *#            $!preHook
#*   *#            if (oldIndex > -1)
#*   *#            {
#*   *#               ${name}.remove (oldIndex);
#*   *#            }
#*   *#            ${name}.add (index, value);
#*   *##if( !$ref )
#*      *#            if (oldIndex < 0)
#*      *#            {
#*      *#               value.$insert;
#*      *#            }
#*   *##end
#*   *#            changed = true;
#*   *#            $!postHook
#*   *#         }
#*   *#         catch (IndexOutOfBoundsException ex)
#*   *#         {
#*   *#            return false;
#*   *#         }
#*   *#      }
#*   *#   }
#*   *#   return changed;
#*   *#}
#**##end
#**#
#**##parse("$lang/default:classDiag/assoc/annotationShort.vm")
#**#$visibility boolean setIn$methodSuffix (#if($partnerKey)$partnerKey partnerKey, #end
#**#int index, $type value)##
#**##if( $targetClassIsInterface )
#*   *#;
#**##else
#*   *#
#*   *#{
#*   *#   boolean changed = false;
#*   *#
#*   *#   if (value != null)
#*   *#   {
#*   *#      if (this.$name == null)
#*   *#      {
#*   *#         this.$name = new $container ($!constParams); // or FTreeSet () or FLinkedList ()
#*   *#      }
#*   *#      int oldIndex = this.indexOf$methodSuffix (value);
#*   *#      if (oldIndex != index)
#*   *#      {
#*   *#         try
#*   *#         {
#*   *#            $!preHook
#*   *#            $type oldValue = ($type)this.${name}.set (index, value);
#*   *#            if (oldIndex > -1)
#*   *#            {
#*   *#               this.${name}.remove (oldIndex);
#*   *#            }
#*   *#            if (oldValue != value)
#*   *#            {
#*   *##if( !$ref )
#*      *#               if (oldValue != null)
#*      *#               {
#*      *#                  oldValue.$remove;
#*      *#               }
#*      *#               if (oldIndex < 0)
#*      *#               {
#*      *#                  value.$insert;
#*      *#               }
#*   *##end
#*   *#               changed = true;
#*   *#            }
#*   *#            $!postHook
#*   *#         }
#*   *#         catch (IndexOutOfBoundsException ex)
#*   *#         {
#*   *#            return false;
#*   *#         }
#*   *#      }
#*   *#   }
#*   *#   return changed;
#*   *#}
#**##end
#**#
#**##parse("$lang/default:classDiag/assoc/annotationShort.vm")
#**#$visibility boolean removeFrom$methodSuffix (#if($partnerKey)$partnerKey partnerKey, #end
#**#int index)##
#**##if( $targetClassIsInterface )
#*   *#;
#**##else
#*   *#
#*   *#{
#*   *#   boolean changed = false;
#*   *#
#*   *#   if (this.$name != null && (index >= 0 && index < this.${name}.size ()))
#*   *#   {
#*   *#      $!preHook
#*   *#      $type tmpValue = ($type) this.${name}.remove (index);
#*   *#      if (tmpValue != null)
#*   *#      {
#*   *##if( !$ref )
#*      *#         tmpValue.$remove;
#*   *##end
#*   *#         changed = true;
#*   *#      }
#*   *#      $!postHook
#*   *#   }
#*   *#   return changed;
#*   *#}
#**##end
#**#
#**##parse("$lang/default:classDiag/assoc/annotationShort.vm")
#**#$visibility boolean removeFrom$methodSuffix (#if($partnerKey)$partnerKey partnerKey, #end
#**#int index, $type value)##
#**##if( $targetClassIsInterface )
#*   *#;
#**##else
#*   *#
#*   *#{
#*   *#   boolean changed = false;
#*   *#
#*   *#   if ((this.$name != null) && (value != null) && 
#*   *#       (index >= 0 && index < this.${name}.size ()))
#*   *#   {
#*   *#      $type oldValue = ($type) this.${name}.get (index);
#*   *#      if (oldValue == value)
#*   *#      {
#*   *#         $!preHook
#*   *#         changed = this.removeFrom$methodSuffix (index);
#*   *#         $!postHook
#*   *#      }
#*   *#   }
#*   *#   return changed;
#*   *#}
#**##end
#**#
#**##parse("$lang/default:classDiag/assoc/annotationShort.vm")
#**#$visibility ListIterator<? extends $type> iteratorOf$methodSuffix ( $type  lowerBound )##
#**##if( $targetClassIsInterface )
#*   *#;
#**##else
#*   *#
#*   *#{
#*   *#   ListIterator<$type> result = FEmptyListIterator.<$type>get ();
#*   *#
#*   *#   if ($name != null && lowerBound != null)
#*   *#   {
#*   *#      int index = ${name}.indexOf (lowerBound) + 1;
#*   *#      result = ${name}.listIterator (index);
#*   *#   }
#*   *#   else if ($name != null && lowerBound == null)
#*   *#   {
#*   *#      result = ${name}.listIterator (0);
#*   *#   }
#*   *#
#*   *#   return result;
#*   *#}
#**##end
#**#
#**##parse("$lang/default:classDiag/assoc/annotationShort.vm")
#**#$visibility ListIterator<? extends $type> iteratorOf$methodSuffix (int index)##
#**##if( $targetClassIsInterface )
#*   *#;
#**##else
#*   *#
#*   *#{
#*   *#   return ((this.$name == null)
#*   *#           ? FEmptyListIterator.<$type>get ()
#*   *#           : this.${name}.listIterator (Math.max(0,Math.min(index,this.${name}.size ()))));
#*   *#}
#**##end
