List of usage examples for org.joda.time Interval overlaps
public boolean overlaps(ReadableInterval interval)
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; }