public void parse(String line, ParseState state) { lineParser.parse(line, state); Match match = ParseUtil.match(Constants.EXT_X_VERSION_PATTERN, line, getTag()); if (state.getCompatibilityVersion() != ParseState.NONE) { throw ParseException.create(ParseExceptionType.MULTIPLE_EXT_TAG_INSTANCES, getTag(), line); } int compatibilityVersion = ParseUtil.parseInt(match.Groups[1].Value, getTag()); if (compatibilityVersion < Playlist.MIN_COMPATIBILITY_VERSION) { throw ParseException.create(ParseExceptionType.INVALID_COMPATIBILITY_VERSION, getTag(), line); } if (compatibilityVersion > Constants.MAX_COMPATIBILITY_VERSION) { throw ParseException.create(ParseExceptionType.UNSUPPORTED_COMPATIBILITY_VERSION, getTag(), line); } state.setCompatibilityVersion(compatibilityVersion); }
public void parse(String line, ParseState state) { if (state.startData != null) { throw ParseException.create(ParseExceptionType.MULTIPLE_EXT_TAG_INSTANCES, getTag(), line); } StartData.Builder builder = new StartData.Builder(); lineParser.parse(line, state); ParseUtil.parseAttributes(line, builder, state, HANDLERS, getTag()); state.startData = builder.build(); }