// 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.exceptions.InvalidTagParameters;
import org.fbk.cit.hlt.parsers.hls.tags.*;
    protected String manifestCluster;
    protected float serverTime;

    public TwitchInfoTag(String propertyString) throws InvalidTagParameters {
        super(propertyString);
    }

    @Override
    protected void resolveParameter(String name, String string) throws InvalidTagParameters {
        switch (name) {
            case "NODE":
                node = string;
                return;
            case "MANIFEST-NODE":
                manifestNode = string;
                return;
            case "USER-IP":
                userIP = string;
                return;
            case "SERVER-TIME":
                serverTime = Float.valueOf(string);
                return;
            case "CLUSTER":
                cluster = string;
                return;
            case "MANIFEST-CLUSTER":
                manifestCluster = string;
                return;
        }

// 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/extensions/twitchtv/TwitchInfoTag.java
import org.fbk.cit.hlt.parsers.hls.exceptions.InvalidTagParameters;
import org.fbk.cit.hlt.parsers.hls.tags.*;

    protected String manifestCluster;
    protected float serverTime;

    public TwitchInfoTag(String propertyString) throws InvalidTagParameters {
        super(propertyString);
    }

    @Override
    protected void resolveParameter(String name, String string) throws InvalidTagParameters {
        switch (name) {
            case "NODE":
                node = string;
                return;
            case "MANIFEST-NODE":
                manifestNode = string;
                return;
            case "USER-IP":
                userIP = string;
                return;
            case "SERVER-TIME":
                serverTime = Float.valueOf(string);
                return;
            case "CLUSTER":
                cluster = string;
                return;
            case "MANIFEST-CLUSTER":
                manifestCluster = string;
                return;
        }

        throw new InvalidTagParameters("Invalid parameter name for a string parameter: \"" + name + "\"");