From e522332ad8547b842d1d4b6d3b84347bf264de0e Mon Sep 17 00:00:00 2001 From: langella <langella@b8ef2a07-7df7-436f-90b9-41648038564b> Date: Wed, 23 May 2012 12:55:43 +0000 Subject: [PATCH] ceinture and bretelle in case of collision git-svn-id: https://subversion.renater.fr/xtandempipeline/trunk@280 b8ef2a07-7df7-436f-90b9-41648038564b --- .../xtandempipeline/grouping/HashProtein.java | 18 ++++++++ .../grouping/HashSampleScan.java | 42 ++++++++++++++----- 2 files changed, 50 insertions(+), 10 deletions(-) diff --git a/xtandempipeline/src/fr/inra/pappso/xtandempipeline/grouping/HashProtein.java b/xtandempipeline/src/fr/inra/pappso/xtandempipeline/grouping/HashProtein.java index d82a5245d..89d3626ff 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 0b69d3652..b91942e36 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; } -- GitLab