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