1 package org.broadinstitute.hellbender.tools.copynumber.formats.records; 2 3 import htsjdk.samtools.util.Locatable; 4 import org.broadinstitute.hellbender.utils.SimpleInterval; 5 import org.broadinstitute.hellbender.utils.Utils; 6 import org.broadinstitute.hellbender.utils.param.ParamUtils; 7 8 public class LegacySegment implements Locatable { 9 private final String sampleName; 10 private final SimpleInterval interval; 11 private final int numProbes; 12 private final double segmentMean; 13 LegacySegment(final String sampleName, final SimpleInterval interval, final int numProbes, final double segmentMean)14 public LegacySegment(final String sampleName, 15 final SimpleInterval interval, 16 final int numProbes, 17 final double segmentMean) { 18 Utils.nonEmpty(sampleName); 19 Utils.nonNull(interval); 20 ParamUtils.isPositiveOrZero(numProbes, "Number of probes must be non-negative."); 21 this.sampleName = sampleName; 22 this.interval = interval; 23 this.numProbes = numProbes; 24 this.segmentMean = segmentMean; 25 } 26 getSampleName()27 public String getSampleName() { 28 return sampleName; 29 } 30 31 @Override getContig()32 public String getContig() { 33 return interval.getContig(); 34 } 35 36 @Override getStart()37 public int getStart() { 38 return interval.getStart(); 39 } 40 41 @Override getEnd()42 public int getEnd() { 43 return interval.getEnd(); 44 } 45 getInterval()46 public SimpleInterval getInterval() { 47 return interval; 48 } 49 getNumProbes()50 public int getNumProbes() { 51 return numProbes; 52 } 53 getSegmentMean()54 public double getSegmentMean() { 55 return segmentMean; 56 } 57 58 @Override equals(Object o)59 public boolean equals(Object o) { 60 if (this == o) { 61 return true; 62 } 63 if (o == null || getClass() != o.getClass()) { 64 return false; 65 } 66 final LegacySegment that = (LegacySegment) o; 67 return numProbes == that.numProbes && 68 Double.compare(that.segmentMean, segmentMean) == 0 && 69 sampleName.equals(that.sampleName) && 70 interval.equals(that.interval); 71 } 72 73 @Override hashCode()74 public int hashCode() { 75 int result; 76 long temp; 77 result = sampleName.hashCode(); 78 result = 31 * result + interval.hashCode(); 79 result = 31 * result + numProbes; 80 temp = Double.doubleToLongBits(segmentMean); 81 result = 31 * result + (int) (temp ^ (temp >>> 32)); 82 return result; 83 } 84 85 @Override toString()86 public String toString() { 87 return "LegacySegment{" + 88 "sampleName='" + sampleName + '\'' + 89 ", interval=" + interval + 90 ", numProbes=" + numProbes + 91 ", segmentMean=" + segmentMean + 92 '}'; 93 } 94 } 95