code: public TimeZoneFormat setGMTOffsetPattern(GMTOffsetPatternType type, String pattern) {
          if (isFrozen()) {
              throw new UnsupportedOperationException("Attempt to modify frozen object");
          }
          if (pattern == null) {
              throw new NullPointerException("Null GMT offset pattern");
          }
  
          Object[] parsedItems = parseOffsetPattern(pattern, type.required());
  
          _gmtOffsetPatterns[type.ordinal()] = pattern;
          _gmtOffsetPatternItems[type.ordinal()] = parsedItems;
          checkAbuttingHoursAndMinutes();
  
          return this;
      }
docs: Sets the offset pattern for the given offset type.
  
  @param type the offset pattern.
  @param pattern the pattern string.
  @return this object.
  @throws IllegalArgumentException when the pattern string does not have required time field letters.
  @throws UnsupportedOperationException when this object is frozen.
  @see #getGMTOffsetPattern(GMTOffsetPatternType)