001 /** 002 * LinealCaseBase.java 003 * jCOLIBRI2 framework. 004 * @author Juan A. Recio-García. 005 * GAIA - Group for Artificial Intelligence Applications 006 * http://gaia.fdi.ucm.es 007 * 28/11/2006 008 */ 009 package jcolibri.casebase; 010 011 import java.util.Collection; 012 013 import jcolibri.cbrcore.CBRCase; 014 import jcolibri.cbrcore.CBRCaseBase; 015 import jcolibri.cbrcore.CaseBaseFilter; 016 import jcolibri.cbrcore.Connector; 017 018 /** 019 * Basic Linal Case Base that stores cases into a List. 020 * This class does not includes any kind of caching mechanism. 021 * That way, if you call to learn() or forget() cases are automatically stored/removed to/from the persistence media. 022 * This will be a performance problem if you plan to learn/forget in multiple steps. This case base is unrecommended for evaluation. 023 * <p> 024 * Depending on your requirements the CachedLinealCaseBase could be more suitable. 025 * 026 * @author Juan A. Recio-García 027 * @see jcolibri.casebase.CachedLinealCaseBase 028 * 029 */ 030 public class LinealCaseBase implements CBRCaseBase { 031 032 private jcolibri.cbrcore.Connector connector; 033 private java.util.Collection<CBRCase> cases; 034 035 public void init(Connector connector) { 036 this.connector = connector; 037 cases = this.connector.retrieveAllCases(); 038 } 039 040 /* (non-Javadoc) 041 * @see jcolibri.cbrcore.CBRCaseBase#deInit() 042 */ 043 public void close() { 044 this.connector.close(); 045 046 } 047 048 /* (non-Javadoc) 049 * @see jcolibri.cbrcore.CBRCaseBase#forgetCases(java.util.Collection) 050 */ 051 public void forgetCases(Collection<CBRCase> cases) { 052 // TODO Auto-generated method stub 053 054 } 055 056 /* (non-Javadoc) 057 * @see jcolibri.cbrcore.CBRCaseBase#getCases() 058 */ 059 public Collection<CBRCase> getCases() { 060 return cases; 061 } 062 063 /* (non-Javadoc) 064 * @see jcolibri.cbrcore.CBRCaseBase#getCases(jcolibri.cbrcore.CaseBaseFilter) 065 */ 066 public Collection<CBRCase> getCases(CaseBaseFilter filter) { 067 // TODO Auto-generated method stub 068 return null; 069 } 070 071 072 /* (non-Javadoc) 073 * @see jcolibri.cbrcore.CBRCaseBase#learnCases(java.util.Collection) 074 */ 075 public void learnCases(Collection<CBRCase> cases) { 076 connector.storeCases(cases); 077 this.cases.addAll(cases); 078 079 } 080 081 082 }