private void add( NavigableMap<Interval, TimelineEntry> timeline, Interval interval, TimelineEntry entry ) { TimelineEntry existsInTimeline = timeline.get(interval); if (existsInTimeline != null) { int compare = versionComparator.compare(entry.getVersion(), existsInTimeline.getVersion()); if (compare > 0) { addIntervalToTimeline(interval, entry, timeline); } return; } Interval lowerKey = timeline.lowerKey(interval); if (lowerKey != null) { if (addAtKey(timeline, lowerKey, entry)) { return; } } Interval higherKey = timeline.higherKey(interval); if (higherKey != null) { if (addAtKey(timeline, higherKey, entry)) { return; } } addIntervalToTimeline(interval, entry, timeline); }
entryInterval = new Interval(currKey.getEnd(), entryInterval.getEnd()); } else { addIntervalToTimeline(new Interval(entryInterval.getStart(), currKey.getStart()), entry, timeline); addIntervalToTimeline(new Interval(currKey.getStart(), entryInterval.getStart()), oldEntry, timeline); addIntervalToTimeline(new Interval(entryInterval.getEnd(), currKey.getEnd()), oldEntry, timeline); addIntervalToTimeline(entryInterval, entry, timeline); addIntervalToTimeline(new Interval(currKey.getStart(), entryInterval.getStart()), oldEntry, timeline); } else if (entryInterval.getEnd().isBefore(currKey.getEnd())) { addIntervalToTimeline(new Interval(entryInterval.getEnd(), currKey.getEnd()), oldEntry, timeline); addIntervalToTimeline(entryInterval, entry, timeline);
private void add( NavigableMap<Interval, TimelineEntry> timeline, Interval interval, TimelineEntry entry ) { TimelineEntry existsInTimeline = timeline.get(interval); if (existsInTimeline != null) { int compare = versionComparator.compare(entry.getVersion(), existsInTimeline.getVersion()); if (compare > 0) { addIntervalToTimeline(interval, entry, timeline); } return; } Interval lowerKey = timeline.lowerKey(interval); if (lowerKey != null) { if (addAtKey(timeline, lowerKey, entry)) { return; } } Interval higherKey = timeline.higherKey(interval); if (higherKey != null) { if (addAtKey(timeline, higherKey, entry)) { return; } } addIntervalToTimeline(interval, entry, timeline); }
entryInterval = new Interval(currKey.getEnd(), entryInterval.getEnd()); } else { addIntervalToTimeline(new Interval(entryInterval.getStart(), currKey.getStart()), entry, timeline); addIntervalToTimeline(new Interval(currKey.getStart(), entryInterval.getStart()), oldEntry, timeline); addIntervalToTimeline(new Interval(entryInterval.getEnd(), currKey.getEnd()), oldEntry, timeline); addIntervalToTimeline(entryInterval, entry, timeline); addIntervalToTimeline(new Interval(currKey.getStart(), entryInterval.getStart()), oldEntry, timeline); } else if (entryInterval.getEnd().isBefore(currKey.getEnd())) { addIntervalToTimeline(new Interval(entryInterval.getEnd(), currKey.getEnd()), oldEntry, timeline); addIntervalToTimeline(entryInterval, entry, timeline);