// Path: src/main/java/org/fbk/cit/hlt/parsers/hls/MediaType.java
// public enum MediaType {
//     AUDIO, VIDEO, SUBTITLES, CLOSED_CAPTIONS
// }
// 
// Path: src/main/java/org/fbk/cit/hlt/parsers/hls/exceptions/InvalidTagParameters.java
// public class InvalidTagParameters extends Exception {
//     public InvalidTagParameters() {
//         super();
//     }
// 
//     public InvalidTagParameters(String message) {
//         super(message);
//     }
// 
//     public static InvalidTagParameters required(String parameter) {
//         return new InvalidTagParameters("Required "+parameter+" parameter is missing");
//     }
// }


import org.fbk.cit.hlt.parsers.hls.MediaType;
import org.fbk.cit.hlt.parsers.hls.exceptions.InvalidTagParameters;
import org.fbk.cit.hlt.parsers.hls.tags.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
            case "BANDWIDTH":
                bandwidth = number;
                return;
            case "AVERAGE-BANDWIDTH":
                averageBandwidth = number;
                return;
            case "PROGRAM-ID":
                logger.warn("Integer parameter PROGRAM-ID shouldn't be used for tag "+this.getName());
                return;
        }

        throw new InvalidTagParameters("Invalid parameter name for an integer parameter: \"" + name + "\"");
    }
    protected void resolveParameter(String name, float number) throws InvalidTagParameters {
        throw new InvalidTagParameters("Invalid parameter name for a float parameter: \"" + name + "\"");
    }
    protected void resolveParameter(String name, String string) throws InvalidTagParameters {
        switch (name) {
            case "CODECS":
                codecs = string;
                return;
            default:
                throw new InvalidTagParameters("Invalid parameter name for a string parameter: \"" + name + "\"");
            case "AUDIO":
                mediaType = MediaType.AUDIO;
                break;
            case "VIDEO":
                mediaType = MediaType.VIDEO;
                break;
            case "SUBTITLES":
// Path: src/main/java/org/fbk/cit/hlt/parsers/hls/MediaType.java
// public enum MediaType {
//     AUDIO, VIDEO, SUBTITLES, CLOSED_CAPTIONS
// }
// 
// Path: src/main/java/org/fbk/cit/hlt/parsers/hls/exceptions/InvalidTagParameters.java
// public class InvalidTagParameters extends Exception {
//     public InvalidTagParameters() {
//         super();
//     }
// 
//     public InvalidTagParameters(String message) {
//         super(message);
//     }
// 
//     public static InvalidTagParameters required(String parameter) {
//         return new InvalidTagParameters("Required "+parameter+" parameter is missing");
//     }
// }


// Path: src/main/java/org/fbk/cit/hlt/parsers/hls/tags/master/StreamInfTag.java
import org.fbk.cit.hlt.parsers.hls.MediaType;
import org.fbk.cit.hlt.parsers.hls.exceptions.InvalidTagParameters;
import org.fbk.cit.hlt.parsers.hls.tags.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

            case "BANDWIDTH":
                bandwidth = number;
                return;
            case "AVERAGE-BANDWIDTH":
                averageBandwidth = number;
                return;
            case "PROGRAM-ID":
                logger.warn("Integer parameter PROGRAM-ID shouldn't be used for tag "+this.getName());
                return;
        }

        throw new InvalidTagParameters("Invalid parameter name for an integer parameter: \"" + name + "\"");
    }
    protected void resolveParameter(String name, float number) throws InvalidTagParameters {
        throw new InvalidTagParameters("Invalid parameter name for a float parameter: \"" + name + "\"");
    }
    protected void resolveParameter(String name, String string) throws InvalidTagParameters {
        switch (name) {
            case "CODECS":
                codecs = string;
                return;
            default:
                throw new InvalidTagParameters("Invalid parameter name for a string parameter: \"" + name + "\"");
            case "AUDIO":
                mediaType = MediaType.AUDIO;
                break;
            case "VIDEO":
                mediaType = MediaType.VIDEO;
                break;
            case "SUBTITLES":
                mediaType = MediaType.SUBTITLES;