@Override public int compareTo(CheckpointableWatermark o) { if (!(this.source.equals(o.getSource()))) { throw new RuntimeException("Could not compare two checkpointable watermarks because they have different sources " + this.source + ":" + o.getSource()); } return this.comparable.compareTo(o.getWatermark()); }
@Override public String toString() { return String.format("%s : %s ", getSource(), GSON.toJson(this.comparable.toJson())); } }
@Override public short calculatePercentCompletion(Watermark lowWatermark, Watermark highWatermark) { return comparable.calculatePercentCompletion(lowWatermark, highWatermark); }
if ((!copyFromRaw.getWatermark().isPresent() && copyToRaw.getWatermark().isPresent()) || ( copyFromRaw.getWatermark().isPresent() && copyToRaw.getWatermark().isPresent() && copyFromRaw.getWatermark().get().compareTo(copyToRaw.getWatermark().get()) <= 0)) { log.info( "No need to copy as destination watermark >= source watermark with source watermark {}, for dataset with metadata {}", copyFromRaw.getWatermark().isPresent() ? copyFromRaw.getWatermark().get().toJson() : "N/A", this.rc.getMetaData()); return copyableFiles;
if ((!copyFromRaw.getWatermark().isPresent() && copyToRaw.getWatermark().isPresent()) || ( copyFromRaw.getWatermark().isPresent() && copyToRaw.getWatermark().isPresent() && copyFromRaw.getWatermark().get().compareTo(copyToRaw.getWatermark().get()) <= 0)) { log.info( "No need to copy as destination watermark >= source watermark with source watermark {}, for dataset with metadata {}", copyFromRaw.getWatermark().isPresent() ? copyFromRaw.getWatermark().get().toJson() : "N/A", this.rc.getMetaData()); return copyableFiles;
@Override public int compare(CopyRoute o1, CopyRoute o2) { EndPoint from1 = o1.getCopyFrom(); EndPoint from2 = o2.getCopyFrom(); Optional<ComparableWatermark> w1 = from1.getWatermark(); Optional<ComparableWatermark> w2 = from2.getWatermark(); // both are absent if(!w1.isPresent() && !w2.isPresent()){ return 0; } if(!w2.isPresent()){ return 1; } if(!w1.isPresent()){ return -1; } return w1.get().compareTo(w2.get()); } }
@Override public String toString() { return String.format("%s : %s ", getSource(), GSON.toJson(this.comparable.toJson())); } }
@Override public short calculatePercentCompletion(Watermark lowWatermark, Watermark highWatermark) { return comparable.calculatePercentCompletion(lowWatermark, highWatermark); }
@Override public int compareTo(CheckpointableWatermark o) { if (!(this.source.equals(o.getSource()))) { throw new RuntimeException("Could not compare two checkpointable watermarks because they have different sources " + this.source + ":" + o.getSource()); } return this.comparable.compareTo(o.getWatermark()); }
@Override public int compare(CopyRoute o1, CopyRoute o2) { EndPoint from1 = o1.getCopyFrom(); EndPoint from2 = o2.getCopyFrom(); Optional<ComparableWatermark> w1 = from1.getWatermark(); Optional<ComparableWatermark> w2 = from2.getWatermark(); // both are absent if(!w1.isPresent() && !w2.isPresent()){ return 0; } if(!w2.isPresent()){ return 1; } if(!w1.isPresent()){ return -1; } return w1.get().compareTo(w2.get()); } }