net.intelie.pipes.time.PeriodList Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pipes-api Show documentation
Show all versions of pipes-api Show documentation
Intelie Pipes' API classes and interfaces
package net.intelie.pipes.time;
import net.intelie.pipes.util.Iterables;
import java.time.ZoneId;
import java.util.*;
import java.util.stream.Collectors;
import static net.intelie.pipes.util.Preconditions.checkArgument;
public class PeriodList implements Period {
private final List periods;
public PeriodList(Period... periods) {
this(Arrays.asList(periods));
}
public PeriodList(List periods) {
checkArgument(periods.size() > 0, "PeriodList must have at least one period");
this.periods = periods;
}
public static Period of(Period... periods) {
return of(Arrays.asList(periods));
}
public static Period of(List periods) {
if (periods.size() == 1)
return periods.iterator().next();
else
return new PeriodList(periods);
}
@Override
public PeriodList forceZone(ZoneId zone) {
return new PeriodList(periods.stream().map(x -> x.forceZone(zone)).collect(Collectors.toList()));
}
@Override
public Map simple() {
List