Example usage for org.joda.time Interval overlaps

List of usage examples for org.joda.time Interval overlaps

Introduction

In this page you can find the example usage for org.joda.time Interval overlaps.

Prototype

public boolean overlaps(ReadableInterval interval) 

Source Link

Document

Does this time interval overlap the specified time interval.

Usage

From source file:net.sourceforge.fenixedu.domain.space.EventSpaceOccupation.java

License:Open Source License

public List<Interval> getEventSpaceOccupationIntervals(DateTime start, DateTime end) {
    final Interval i = new Interval(start, end);
    final List<Interval> intervals = getEventSpaceOccupationIntervals(start.toYearMonthDay(),
            end.toYearMonthDay());/*  w  w w .  j a v  a  2s  . c o  m*/
    for (final Iterator<Interval> iterator = intervals.iterator(); iterator.hasNext();) {
        final Interval interval = iterator.next();
        if (!interval.overlaps(i)) {
            iterator.remove();
        }
    }
    return intervals;
}

From source file:net.sourceforge.fenixedu.domain.space.LessonInstanceSpaceOccupation.java

License:Open Source License

@Override
protected boolean overlaps(final Interval interval) {
    for (final LessonInstance instance : getLessonInstancesSet()) {
        final Interval lessonInterval = instance.getInterval();
        if (interval.overlaps(lessonInterval)) {
            return true;
        }/*from   w  ww .  j a  v  a 2 s. c o  m*/
    }
    return false;
}

From source file:net.sourceforge.fenixedu.domain.space.WrittenEvaluationSpaceOccupation.java

License:Open Source License

@Override
protected boolean overlaps(final Interval interval) {
    for (final WrittenEvaluation writtenEvaluation : getWrittenEvaluationsSet()) {
        final Interval evaluationInterval = writtenEvaluation.getInterval();
        if (interval.overlaps(evaluationInterval)) {
            return true;
        }/* w  w w  .j  a v  a 2  s  .c o m*/
    }
    return false;
}

From source file:net.sourceforge.fenixedu.domain.vigilancy.VigilantWrapper.java

License:Open Source License

public Boolean isAvailableOnDate(DateTime begin, DateTime end) {
    Collection<UnavailablePeriod> unavailablePeriods = this.getPerson().getUnavailablePeriodsSet();
    for (UnavailablePeriod period : unavailablePeriods) {
        if (period.containsInterval(begin, end)) {
            return Boolean.FALSE;
        }// w  w w  .j av a2s . co  m

    }
    Interval interval = new Interval(begin, end);

    for (VigilantWrapper otherVigilant : this.getPerson().getVigilantWrappersSet()) {
        for (Vigilancy vigilancy : otherVigilant.getVigilanciesSet()) {
            if (interval.overlaps(vigilancy.getWrittenEvaluation().getDurationInterval())) {
                if (vigilancy.getWrittenEvaluation().getDurationInterval().overlaps(interval)) {
                    return Boolean.FALSE;
                }
            }
        }
    }

    return Boolean.TRUE;
}

From source file:org.antonini.util.time.TimeSliceTools.java

License:Open Source License

/**
 * @param slice the timeslices//from w w w  . ja va  2  s  .c o m
 * @param validDate the time interval
 * @return true if the timeslices validTime intersects the given time interval
 */
public static boolean checkTimeSliceValidForTime(AbstractAIXMTimeSliceType slice, Interval validDate) {
    Interval sliceDuration = GMLTimeParser.parseTimePrimitive(slice.getValidTime());

    if (sliceDuration.overlaps(validDate) || sliceDuration.abuts(validDate)) {
        return true;
    }

    return false;
}

From source file:org.apache.druid.indexing.firehose.IngestSegmentFirehoseFactory.java

License:Apache License

private List<TimelineObjectHolder<String, DataSegment>> getTimelineForSegmentIds() {
    final SortedMap<Interval, TimelineObjectHolder<String, DataSegment>> timeline = new TreeMap<>(
            Comparators.intervalsByStartThenEnd());
    for (WindowedSegmentId windowedSegmentId : Preconditions.checkNotNull(segmentIds)) {
        final DataSegment segment = coordinatorClient.getDatabaseSegmentDataSourceSegment(dataSource,
                windowedSegmentId.getSegmentId());
        for (Interval interval : windowedSegmentId.getIntervals()) {
            final TimelineObjectHolder<String, DataSegment> existingHolder = timeline.get(interval);
            if (existingHolder != null) {
                if (!existingHolder.getVersion().equals(segment.getVersion())) {
                    throw new ISE(
                            "Timeline segments with the same interval should have the same version: "
                                    + "existing version[%s] vs new segment[%s]",
                            existingHolder.getVersion(), segment);
                }/*from ww  w.  ja va  2  s  .  c o m*/
                existingHolder.getObject().add(segment.getShardSpec().createChunk(segment));
            } else {
                timeline.put(interval,
                        new TimelineObjectHolder<>(interval, segment.getInterval(), segment.getVersion(),
                                new PartitionHolder<DataSegment>(segment.getShardSpec().createChunk(segment))));
            }
        }
    }

    // Validate that none of the given windows overlaps (except for when multiple segments share exactly the
    // same interval).
    Interval lastInterval = null;
    for (Interval interval : timeline.keySet()) {
        if (lastInterval != null) {
            if (interval.overlaps(lastInterval)) {
                throw new IAE("Distinct intervals in input segments may not overlap: [%s] vs [%s]",
                        lastInterval, interval);
            }
        }
        lastInterval = interval;
    }

    return new ArrayList<>(timeline.values());
}

From source file:org.apache.druid.indexing.overlord.IndexerMetadataStorageAdapter.java

License:Apache License

public int deletePendingSegments(String dataSource, Interval deleteInterval) {
    // Check the given interval overlaps the interval(minCreatedDateOfActiveTasks, MAX)
    final Optional<DateTime> minCreatedDateOfActiveTasks = taskStorageQueryAdapter.getActiveTaskInfo(dataSource)
            .stream().map(TaskInfo::getCreatedTime).min(Comparator.naturalOrder());

    final Interval activeTaskInterval = new Interval(minCreatedDateOfActiveTasks.orElse(DateTimes.MAX),
            DateTimes.MAX);/* www . j a v a2  s .  co m*/

    Preconditions.checkArgument(!deleteInterval.overlaps(activeTaskInterval),
            "Cannot delete pendingSegments because there is at least one active task created at %s",
            activeTaskInterval.getStart());

    return indexerMetadataStorageCoordinator.deletePendingSegments(dataSource, deleteInterval);
}

From source file:org.apache.druid.java.util.common.granularity.ArbitraryGranularity.java

License:Apache License

@JsonCreator
public ArbitraryGranularity(@JsonProperty("intervals") List<Interval> inputIntervals,
        @JsonProperty("timezone") DateTimeZone timezone) {
    this.intervals = new TreeSet<>(Comparators.intervalsByStartThenEnd());
    this.timezone = timezone == null ? DateTimeZone.UTC : timezone;

    if (inputIntervals == null) {
        inputIntervals = new ArrayList<>();
    }/*from   w  w  w  . ja va2 s  .co  m*/

    Preconditions.checkArgument(inputIntervals.size() > 0, "at least one interval should be specified");

    // Insert all intervals
    for (final Interval inputInterval : inputIntervals) {
        Interval adjustedInterval = inputInterval;
        if (timezone != null) {
            adjustedInterval = new Interval(inputInterval.getStartMillis(), inputInterval.getEndMillis(),
                    timezone);
        }
        intervals.add(adjustedInterval);
    }

    // Ensure intervals are non-overlapping (but they may abut each other)
    final PeekingIterator<Interval> intervalIterator = Iterators.peekingIterator(intervals.iterator());
    while (intervalIterator.hasNext()) {
        final Interval currentInterval = intervalIterator.next();

        if (intervalIterator.hasNext()) {
            final Interval nextInterval = intervalIterator.peek();
            if (currentInterval.overlaps(nextInterval)) {
                throw new IAE("Overlapping granularity intervals: %s, %s", currentInterval, nextInterval);
            }
        }
    }
}

From source file:org.apache.druid.java.util.common.JodaUtils.java

License:Apache License

public static ArrayList<Interval> condenseIntervals(Iterable<Interval> intervals) {
    ArrayList<Interval> retVal = new ArrayList<>();

    final SortedSet<Interval> sortedIntervals;

    if (intervals instanceof SortedSet) {
        sortedIntervals = (SortedSet<Interval>) intervals;
    } else {//from  www . j  a v  a 2 s  .com
        sortedIntervals = new TreeSet<>(Comparators.intervalsByStartThenEnd());
        for (Interval interval : intervals) {
            sortedIntervals.add(interval);
        }
    }

    if (sortedIntervals.isEmpty()) {
        return new ArrayList<>();
    }

    Iterator<Interval> intervalsIter = sortedIntervals.iterator();
    Interval currInterval = intervalsIter.next();
    while (intervalsIter.hasNext()) {
        Interval next = intervalsIter.next();

        if (currInterval.abuts(next)) {
            currInterval = new Interval(currInterval.getStart(), next.getEnd());
        } else if (currInterval.overlaps(next)) {
            DateTime nextEnd = next.getEnd();
            DateTime currEnd = currInterval.getEnd();
            currInterval = new Interval(currInterval.getStart(), nextEnd.isAfter(currEnd) ? nextEnd : currEnd);
        } else {
            retVal.add(currInterval);
            currInterval = next;
        }
    }
    retVal.add(currInterval);

    return retVal;
}

From source file:org.apache.druid.metadata.IndexerSQLMetadataStorageCoordinator.java

License:Apache License

private List<SegmentIdWithShardSpec> getPendingSegmentsForIntervalWithHandle(final Handle handle,
        final String dataSource, final Interval interval) throws IOException {
    final List<SegmentIdWithShardSpec> identifiers = new ArrayList<>();

    final ResultIterator<byte[]> dbSegments = handle.createQuery(StringUtils.format(
            "SELECT payload FROM %1$s WHERE dataSource = :dataSource AND start <= :end and %2$send%2$s >= :start",
            dbTables.getPendingSegmentsTable(), connector.getQuoteString())).bind("dataSource", dataSource)
            .bind("start", interval.getStart().toString()).bind("end", interval.getEnd().toString())
            .map(ByteArrayMapper.FIRST).iterator();

    while (dbSegments.hasNext()) {
        final byte[] payload = dbSegments.next();
        final SegmentIdWithShardSpec identifier = jsonMapper.readValue(payload, SegmentIdWithShardSpec.class);

        if (interval.overlaps(identifier.getInterval())) {
            identifiers.add(identifier);
        }//from   w  w w  .j ava2  s . c  o  m
    }

    dbSegments.close();

    return identifiers;
}