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