protected String doGetValueAtIndex(FrameAndSubId formatKey,int index) throws KeyNotFoundException {
  List<String> values=doGetValues(formatKey);
  if (values.size() > index) {
    return values.get(index);
  }
  return "";
}

protected String doGetValueAtIndex ( FrameAndSubId formatKey , int index ) throws KeyNotFoundException { List < String > values = doGetValues ( formatKey ) ; if ( values . size ( ) > index ) { return values . get ( index ) ; } return "" ; }
get the value at the index , we massage the values so that the index as used in the generic interface rather than simply taking the frame index . for example if two composers have been added then then they can be retrieved individually using index = 0 , index = 1 despite the fact that both internally will be stored in a single tcom frame .
