code: private GenericMatchInfo createGenericMatchInfo(MatchInfo matchInfo) {
          GenericNameType nameType = null;
          TimeType timeType = TimeType.UNKNOWN;
          switch (matchInfo.nameType()) {
          case LONG_STANDARD:
              nameType = GenericNameType.LONG;
              timeType = TimeType.STANDARD;
              break;
          case LONG_GENERIC:
              nameType = GenericNameType.LONG;
              break;
          case SHORT_STANDARD:
              nameType = GenericNameType.SHORT;
              timeType = TimeType.STANDARD;
              break;
          case SHORT_GENERIC:
              nameType = GenericNameType.SHORT;
              break;
          default:
              throw new IllegalArgumentException("Unexpected MatchInfo name type - " + matchInfo.nameType());
          }
  
          String tzID = matchInfo.tzID();
          if (tzID == null) {
              String mzID = matchInfo.mzID();
              assert(mzID != null);
              tzID = _tznames.getReferenceZoneID(mzID, getTargetRegion());
          }
          assert(tzID != null);
  
          GenericMatchInfo gmatch = new GenericMatchInfo(nameType, tzID, matchInfo.matchLength(), timeType);
  
          return gmatch;
      }
docs: Returns a <code>GenericMatchInfo</code> for the given <code>MatchInfo</code>.
  @param matchInfo the MatchInfo
  @return A GenericMatchInfo