All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.intelie.pipes.time.AnnotatedSpan Maven / Gradle / Ivy

There is a newer version: 0.25.5
Show newest version
package net.intelie.pipes.time;

import net.intelie.pipes.util.Preconditions;

import java.time.ZoneId;
import java.util.Objects;

public class AnnotatedSpan extends TimeSpanBase {
    private static final long serialVersionUID = 1L;

    private final TimeSpan span;
    private final SpanAnnotations annotations;

    public AnnotatedSpan(TimeSpan span, SpanAnnotations annotations) {
        super((annotations.size() > 0 ? "$1 " : "$1") + annotations,
                Preconditions.checkNotNull(span, "span"));
        this.span = span;
        this.annotations = annotations;
    }

    @Override
    public AnnotatedSpan forceZone(ZoneId zone) {
        return new AnnotatedSpan(forceZone(span, zone), annotations);
    }

    @Override
    public long start(long reference) {
        return span.start(reference);
    }

    @Override
    public long end(long reference) {
        return span.end(reference);
    }

    @Override
    public boolean isFixed() {
        return span.isFixed();
    }

    @Override
    public boolean isPoint() {
        return span.isPoint();
    }

    @Override
    public boolean includesPresent() {
        return span.includesPresent();
    }

    @Override
    public SpanAnnotations annotations() {
        return annotations;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof AnnotatedSpan)) return false;
        AnnotatedSpan that = (AnnotatedSpan) o;
        return Objects.equals(span, that.span) &&
                Objects.equals(annotations, that.annotations);
    }

    @Override
    public int hashCode() {
        return Objects.hash(span, annotations);
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy