diff --git a/src/java/htsjdk/samtools/util/IntervalList.java b/src/java/htsjdk/samtools/util/IntervalList.java index 2b30aef634..5f3c3f8bac 100644 --- a/src/java/htsjdk/samtools/util/IntervalList.java +++ b/src/java/htsjdk/samtools/util/IntervalList.java @@ -284,6 +284,17 @@ public static IntervalList fromFile(final File file) { return list; } + /** + * Calls {@link #fromFile(java.io.File)} on the provided files, and returns their {@link #union(java.util.Collection)}. + */ + public static IntervalList fromFiles(final Collection intervalListFiles) { + final Collection intervalLists = new ArrayList(); + for (final File file : intervalListFiles) { + intervalLists.add(IntervalList.fromFile(file)); + } + return IntervalList.union(intervalLists); + } + /** * Parses an interval list from a reader in a stream based fashion. * @param in a BufferedReader that can be read from @@ -579,7 +590,22 @@ public static IntervalList difference(final Collection lists1, fin } + @Override + public boolean equals(final Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + final IntervalList intervals1 = (IntervalList) o; + + return header.equals(intervals1.header) && intervals.equals(intervals1.intervals); + } + + @Override + public int hashCode() { + int result = header.hashCode(); + result = 31 * result + intervals.hashCode(); + return result; + } } /** * Comparator that orders intervals based on their sequence index, by coordinate