// Path: parser/src/main/java/io/lindstrom/mpd/support/Utils.java
// public class Utils {
//     public static <T> List<T> unmodifiableList(List<T> list) {
//         if (list == null) {
//             return List.of();
//         } else {
//             return List.copyOf(list);
//         }
//     }
// 
//     @SafeVarargs
//     public static <T> List<T> varargsToList(T head, T ...tail) {
//         if (tail.length == 0) {
//             return List.of(head);
//         } else {
//             List<T> list = new ArrayList<>();
//             list.add(head);
//             list.addAll(List.of(tail));
//             return List.copyOf(list);
//         }
//     }
// }


import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import io.lindstrom.mpd.support.Utils;
import java.util.List;
import java.util.Objects;
    private final String value;

    @JacksonXmlProperty(isAttribute = true)
    private final Long timescale;

    @JacksonXmlProperty(isAttribute = true)
    private final String messageData;

    private EventStream(List<Event> events, String href, ActuateType actuate, String schemeIdUri, String value, Long timescale, String messageData) {
        this.events = events;
        this.href = href;
        this.actuate = actuate;
        this.schemeIdUri = schemeIdUri;
        this.value = value;
        this.timescale = timescale;
        this.messageData = messageData;
    }

    @SuppressWarnings("unused")
    private EventStream() {
        this.events = null;
        this.href = null;
        this.actuate = null;
        this.schemeIdUri = null;
        this.value = null;
        this.timescale = null;
        this.messageData = null;
    }

    public List<Event> getEvents() {
// Path: parser/src/main/java/io/lindstrom/mpd/support/Utils.java
// public class Utils {
//     public static <T> List<T> unmodifiableList(List<T> list) {
//         if (list == null) {
//             return List.of();
//         } else {
//             return List.copyOf(list);
//         }
//     }
// 
//     @SafeVarargs
//     public static <T> List<T> varargsToList(T head, T ...tail) {
//         if (tail.length == 0) {
//             return List.of(head);
//         } else {
//             List<T> list = new ArrayList<>();
//             list.add(head);
//             list.addAll(List.of(tail));
//             return List.copyOf(list);
//         }
//     }
// }


// Path: parser/src/main/java/io/lindstrom/mpd/data/EventStream.java
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import io.lindstrom.mpd.support.Utils;
import java.util.List;
import java.util.Objects;

    private final String value;

    @JacksonXmlProperty(isAttribute = true)
    private final Long timescale;

    @JacksonXmlProperty(isAttribute = true)
    private final String messageData;

    private EventStream(List<Event> events, String href, ActuateType actuate, String schemeIdUri, String value, Long timescale, String messageData) {
        this.events = events;
        this.href = href;
        this.actuate = actuate;
        this.schemeIdUri = schemeIdUri;
        this.value = value;
        this.timescale = timescale;
        this.messageData = messageData;
    }

    @SuppressWarnings("unused")
    private EventStream() {
        this.events = null;
        this.href = null;
        this.actuate = null;
        this.schemeIdUri = null;
        this.value = null;
        this.timescale = null;
        this.messageData = null;
    }

    public List<Event> getEvents() {
        return Utils.unmodifiableList(events);