code: private String getLiteralStringUntilNextArgument(int from) {
          StringBuilder b = new StringBuilder();
          String msgString=msgPattern.getPatternString();
          int prevIndex=msgPattern.getPart(from).getLimit();
          for(int i=from+1;; ++i) {
              Part part=msgPattern.getPart(i);
              Part.Type type=part.getType();
              int index=part.getIndex();
              b.append(msgString, prevIndex, index);
              if(type==Part.Type.ARG_START || type==Part.Type.MSG_LIMIT) {
                  return b.toString();
              }
              assert type==Part.Type.SKIP_SYNTAX || type==Part.Type.INSERT_CHAR :
                      "Unexpected Part "+part+" in parsed message.";
              prevIndex=part.getLimit();
          }
      }
docs: Read as much literal string from the pattern string as possible. This stops
  as soon as it finds an argument, or it reaches the end of the string.
  @param from Index in the pattern string to start from.
  @return A substring from the pattern string representing the longest possible
  substring with no arguments.