private PeriodFormatterBuilder appendSuffix(PeriodFieldAffix suffix){
  final Object originalPrinter;
  final Object originalParser;
  if (iElementPairs.size() > 0) {
    originalPrinter=iElementPairs.get(iElementPairs.size() - 2);
    originalParser=iElementPairs.get(iElementPairs.size() - 1);
  }
 else {
    originalPrinter=null;
    originalParser=null;
  }
  if (originalPrinter == null || originalParser == null || originalPrinter != originalParser || !(originalPrinter instanceof FieldFormatter)) {
    throw new IllegalStateException("No field to apply suffix to");
  }
  clearPrefix();
  FieldFormatter newField=new FieldFormatter((FieldFormatter)originalPrinter,suffix);
  iElementPairs.set(iElementPairs.size() - 2,newField);
  iElementPairs.set(iElementPairs.size() - 1,newField);
  iFieldFormatters[newField.getFieldType()]=newField;
  return this;
}

private PeriodFormatterBuilder appendSuffix ( PeriodFieldAffix suffix ) { final Object originalPrinter ; final Object originalParser ; if ( iElementPairs . size ( ) > 0 ) { originalPrinter = iElementPairs . get ( iElementPairs . size ( ) - 2 ) ; originalParser = iElementPairs . get ( iElementPairs . size ( ) - 1 ) ; } else { originalPrinter = null ; originalParser = null ; } if ( originalPrinter == null || originalParser == null || originalPrinter != originalParser || ! ( originalPrinter instanceof FieldFormatter ) ) { throw new IllegalStateException ( "No field to apply suffix to" ) ; } clearPrefix ( ) ; FieldFormatter newField = new FieldFormatter ( ( FieldFormatter ) originalPrinter , suffix ) ; iElementPairs . set ( iElementPairs . size ( ) - 2 , newField ) ; iElementPairs . set ( iElementPairs . size ( ) - 1 , newField ) ; iFieldFormatters [ newField . getFieldType ( ) ] = newField ; return this ; }
append a field suffix which applies only to the last appended field . if the field is not printed , neither is the suffix .
