diff --git a/xtandempipeline/src/fr/inra/pappso/xtandempipeline/grouping/HashProtein.java b/xtandempipeline/src/fr/inra/pappso/xtandempipeline/grouping/HashProtein.java index d82a5245d7bdb54a3ca4590d85c8abad26dc25fe..89d3626ffcaca77177a9758cc3237ce84624b159 100644 --- a/xtandempipeline/src/fr/inra/pappso/xtandempipeline/grouping/HashProtein.java +++ b/xtandempipeline/src/fr/inra/pappso/xtandempipeline/grouping/HashProtein.java @@ -1,6 +1,10 @@ package fr.inra.pappso.xtandempipeline.grouping; +import org.apache.log4j.Logger; + public class HashProtein extends HashKey4Groups { + private static final Logger logger = Logger.getLogger(HashProtein.class); + private String accession; private int hascode; @@ -22,4 +26,18 @@ public class HashProtein extends HashKey4Groups { return this.hascode; } + @Override + public boolean equals(Object toCompare) { + if (this.hashCode() == toCompare.hashCode()) { + // very good idea Benoit ! + HashProtein toCompareProtein = (HashProtein) toCompare; + if (this.accession.equals(toCompareProtein.accession)) { + return true; + } else { + logger.debug("HashProtein COLLISION on " + accession + + " compared to " + toCompareProtein.accession); + } + } + return false; + } } diff --git a/xtandempipeline/src/fr/inra/pappso/xtandempipeline/grouping/HashSampleScan.java b/xtandempipeline/src/fr/inra/pappso/xtandempipeline/grouping/HashSampleScan.java index 0b69d3652b636c6ab64aab70f82b43d6131cbf7f..b91942e36f38447599a102bd19a78bd9dcfc0cc6 100644 --- a/xtandempipeline/src/fr/inra/pappso/xtandempipeline/grouping/HashSampleScan.java +++ b/xtandempipeline/src/fr/inra/pappso/xtandempipeline/grouping/HashSampleScan.java @@ -18,10 +18,10 @@ public class HashSampleScan implements Comparable<HashSampleScan> { this.msRun = msRun; this.hascode = this.getHashCodeStr().hashCode(); } - + @Override protected void finalize() throws Throwable { -// logger.debug("finalize HashSampleScan"); + // logger.debug("finalize HashSampleScan"); } private String getHashCodeStr() { @@ -32,14 +32,14 @@ public class HashSampleScan implements Comparable<HashSampleScan> { } else { code = new String("-" + scan + "-" + msRun.getSampleName()); } - //logger.debug("hashcode " + code); + // logger.debug("hashcode " + code); return code; } - -// public String getFingerPrint() { -// return getHashCodeStr(); -// } - + + // public String getFingerPrint() { + // return getHashCodeStr(); + // } + public int compareTo(HashSampleScan p) { int j = this.msRun.getSampleName().compareTo( p.getMsRun().getSampleName()); @@ -49,6 +49,7 @@ public class HashSampleScan implements Comparable<HashSampleScan> { return (i); } + @Override public String toString() { return new String(scan + " " + msRun.getSampleName()); @@ -57,8 +58,29 @@ public class HashSampleScan implements Comparable<HashSampleScan> { @Override public boolean equals(Object toCompare) { if (this.hashCode() == toCompare.hashCode()) { - //logger.debug("equals on hashSampleScan "+this.toString()); - return true; + // logger.debug("equals on hashSampleScan "+this.toString()); + HashSampleScan sampleScanToCompare = (HashSampleScan) toCompare; + + if (this.scan == sampleScanToCompare.scan) { + if (msRun == null) { + return true; + } else { + if (this.msRun.getSampleName().equals( + sampleScanToCompare.msRun.getSampleName())) { + return true; + } else { + logger.debug("HashSampleScan COLLISION on " + + this.toString() + " compared to " + + sampleScanToCompare.toString()); + } + } + } + else { + logger.debug("HashSampleScan COLLISION on " + + this.toString() + " compared to " + + sampleScanToCompare.toString()); + } + } return false; }