1 package org.broadinstitute.hellbender.engine;
2 
3 import org.broadinstitute.hellbender.utils.SimpleInterval;
4 
5 import java.util.Objects;
6 
7 /**
8  * A cut-down version of {@link AssemblyRegion} that doesn't store reads, used in the strict implementation of
9  * {@link org.broadinstitute.hellbender.engine.spark.FindAssemblyRegionsSpark}.
10  */
11 public class ReadlessAssemblyRegion extends ShardBoundary {
12     private static final long serialVersionUID = 1L;
13 
14     private final boolean isActive;
15 
ReadlessAssemblyRegion(final AssemblyRegion assemblyRegion)16     public ReadlessAssemblyRegion(final AssemblyRegion assemblyRegion) {
17         super(assemblyRegion.getSpan(), assemblyRegion.getPaddedSpan());
18         this.isActive = assemblyRegion.isActive();
19     }
20 
ReadlessAssemblyRegion(final SimpleInterval activeRegionLoc, SimpleInterval paddedSpan, final boolean isActive, final boolean padded)21     private ReadlessAssemblyRegion(final SimpleInterval activeRegionLoc, SimpleInterval paddedSpan, final boolean isActive, final boolean padded) {
22         super(activeRegionLoc, paddedSpan, padded);
23         this.isActive = isActive;
24     }
25 
isActive()26     public boolean isActive() {
27         return isActive;
28     }
29 
30     @Override
paddedShardBoundary()31     public ShardBoundary paddedShardBoundary() {
32         return padded ? this : new ReadlessAssemblyRegion(interval, paddedSpan, isActive, true);
33     }
34 
35     @Override
equals(Object o)36     public boolean equals(Object o) {
37         if (this == o) return true;
38         if (o == null || getClass() != o.getClass()) return false;
39         if (!super.equals(o)) return false;
40         ReadlessAssemblyRegion that = (ReadlessAssemblyRegion) o;
41         return isActive == that.isActive;
42     }
43 
44     @Override
hashCode()45     public int hashCode() {
46         return Objects.hash(super.hashCode(), isActive);
47     }
48 
49     @Override
toString()50     public String toString() {
51         return "ReadlessAssemblyRegion{" +
52                 "isActive=" + isActive +
53                 ", interval=" + interval +
54                 ", paddedSpan=" + paddedSpan +
55                 ", padded=" + padded +
56                 '}';
57     }
58 }
59