001 package jcolibri.method.maintenance; 002 003 import java.util.Collection; 004 005 import jcolibri.cbrcore.CBRCase; 006 import jcolibri.method.reuse.classification.KNNClassificationConfig; 007 008 /** 009 * Abstract class for a solves function that will decide which cases 010 * solve a query. 011 * 012 * @author Lisa Cummins 013 * @author Derek Bridge 014 * 22/05/07 015 */ 016 public abstract class SolvesFunction 017 { 018 protected Collection<CBRCase> solveQ; 019 020 protected Collection<CBRCase> misclassifyQ; 021 022 /** 023 * Sets the classes that both solve q or contribute to its 024 * misclassification 025 * @param q the query 026 * @param cases from which to find the cases which solve 027 * and classify the query. These include the query itself. 028 * @param knnConfig the similarity configuration 029 */ 030 public abstract void setCasesThatSolveAndMisclassifyQ(CBRCase q, Collection<CBRCase> cases, KNNClassificationConfig knnConfig); 031 032 /** 033 * Returns the cases that solved the last query for which cases 034 * were divided. 035 * @return the cases that solved the last query for which cases 036 * were divided. 037 */ 038 public Collection<CBRCase> getCasesThatSolvedQuery() 039 { return solveQ; 040 } 041 042 /** 043 * Returns the cases that contributed to the misclassification 044 * of the last query for which cases were divided. 045 * were divided. 046 * @return the cases that contributed to the misclassification 047 * of the last query for which cases were divided. 048 * were divided. 049 */ 050 public Collection<CBRCase> getCasesThatMisclassifiedQuery() 051 { return misclassifyQ; 052 } 053 }