/** * true if some match is scored * * @return as above */ @Override public boolean isMatchPresent() { for (IScoredScan scan : m_Scores.values()) { if (scan.isMatchPresent()) return true; } return false; }
/** * combine two scores * * @param added */ public void addTo(IMultiScorer added) { IScoredScan[] scoredScans = added.getScoredScans(); for (int i = 0; i < scoredScans.length; i++) { IScoredScan addedScan = scoredScans[i]; IScoredScan current = getScoredScan(addedScan.getAlgorithm()); if (current == null) addAlgorithm(addedScan); else ((ScoredScan) current).addTo(addedScan); } }
/** * make a form suitable to 1) reconstruct the original given access to starting conditions * * @param adder !null where to put the data */ public void serializeAsString(IXMLAppender adder) { String[] algorithms = getScoringAlgorithms(); String tag = TAG; adder.openTag(tag); adder.endTag(); adder.cr(); for (int i = 0; i < algorithms.length; i++) { String algorithm = algorithms[i]; IScoredScan scoredScan = getScoredScan(algorithm); scoredScan.serializeAsString(adder); } adder.closeTag(tag); }
public void addAlgorithm(IScoredScan scan) { String key = scan.getAlgorithm(); if (m_Scores.containsKey(key)) { throw new IllegalStateException("duplicate algorithm " + key); } else { m_Scores.put(key, scan); } }