fi.hsl.parkandride.core.domain.HasInterval.java Source code

Java tutorial

Introduction

Here is the source code for fi.hsl.parkandride.core.domain.HasInterval.java

Source

// Copyright  2015 HSL <https://www.hsl.fi>
// This program is dual-licensed under the EUPL v1.2 and AGPLv3 licenses.

package fi.hsl.parkandride.core.domain;

import org.joda.time.DateTime;
import org.joda.time.Duration;
import org.joda.time.Interval;

import java.util.Optional;

public interface HasInterval {

    DateTime getStart();

    DateTime getEnd();

    default Interval getInterval() {
        return new Interval(getStart(), getEnd());
    }

    default Duration overlapWith(Interval interval) {
        return Optional.ofNullable(interval).map(i -> getInterval().overlap(i)).map(Interval::toDuration)
                .orElse(Duration.ZERO);
    }
}