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

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

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

import net.intelie.pipes.util.AutomatonRepr;

import java.time.ZoneId;
import java.util.List;

public abstract class TimeSpanBase implements TimeSpan {
    private static final long serialVersionUID = 1L;
    private final SpanMetadata metadata;

    public TimeSpanBase(String repr, TimeSpan... children) {
        this(new SpanMetadata(repr, children));
    }

    public TimeSpanBase(SpanMetadata metadata) {
        this.metadata = metadata;
    }

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

    @Override
    public SpanMetadata metadata() {
        return metadata;
    }

    @Override
    public List children() {
        return metadata.children();
    }

    @Override
    public AutomatonRepr repr(long timestamp, String zone) {
        return metadata.repr(this, timestamp, zone);
    }

    @Override
    public String toString() {
        return metadata.toString();
    }

    public static TimeSpan forceZone(TimeSpan span, ZoneId zone) {
        return span != null ? span.forceZone(zone) : null;
    }

    public static Period forceZone(Period period, ZoneId zone) {
        return period != null ? period.forceZone(zone) : null;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy