#**##set( $getKeys = "get$utility.upFirstChar($qualified.Name)" )
#**##parse("$lang/default:classDiag/assoc/annotationShort.vm")
#**#$visibility $key getKeyFor$methodSuffix ($type value)
#**##if ( $targetClassIsInterface ) 
#*   *#;
#**##else
#*   *#{
#*   *#   return (value == null ? null : value.$getKeys ());
#*   *#}
#**##end
#**#
#**##parse("$lang/default:classDiag/assoc/annotationShort.vm")
#**#$visibility void keyChangedIn$methodSuffix ($key oldKey, $type value)
#**##if ( $targetClassIsInterface ) 
#*   *#;
#**##else
#*   *#{
#*   *##if( $toMany )
#*      *#   if ((this.$name != null) && 
#*      *#       (oldKey != getKeyFor$methodSuffix (value)))
#*      *#   {
#*      *#      $type oldValue  = ($type) this.${name}.remove (oldKey, value);
#*      *#      if (oldValue != null)
#*      *#      {
#*      *#         this.${name}.put (getKeyFor$methodSuffix (value), value);
#*      *#      }
#*      *#   }
#*   *##else
#*      *#   if ((this.$name != null) &&  
#*      *#       (oldKey != getKeyFor$methodSuffix (value)))
#*      *#   {
#*      *#      $type oldValue = ($type) this.${name}.get (oldKey);
#*      *#      if (oldValue == value)
#*      *#      {
#*      *#         this.${name}.remove (oldKey);
#*      *#         oldValue = ($type)this.${name}.put (this.getKeyFor$methodSuffix (value), value);
#*      *##if( !$ref )
#*         *#         if (oldValue != null)
#*         *#         {
#*         *#            oldValue.$remove;
#*         *#         }
#*      *##end
#*      *#      }
#*      *#   }
#*   *##end
#*   *#}
#**##end