001 /** 002 * RestaurantsConnector.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 * 23/06/2007 008 */ 009 package jcolibri.test.recommenders.rec7; 010 011 import java.io.BufferedReader; 012 import java.io.IOException; 013 import java.io.InputStreamReader; 014 import java.net.URL; 015 import java.util.ArrayList; 016 import java.util.Collection; 017 018 import jcolibri.cbrcore.CBRCase; 019 import jcolibri.cbrcore.CaseBaseFilter; 020 import jcolibri.cbrcore.Connector; 021 import jcolibri.exception.InitializingException; 022 import jcolibri.extensions.textual.IE.opennlp.IETextOpenNLP; 023 024 /** 025 * Obtains cases from a simple txt file. This connector is thought to work with txt files that contain 026 * descriptions of restaurants following the format: 027 * <pre> 028 * NAME 029 * ADDRESS 030 * LOCATION 031 * PHONE 032 * DESCRIPTION 033 * AUTHOR_OF_DESCRIPTION 034 * 035 * 036 * NAME 037 * ADDRESS 038 * ... 039 * </pre> 040 * This connector only reads cases but does not write anything to the text file. 041 * @author Juan A. Recio-Garcia 042 * @author Developed at University College Cork (Ireland) in collaboration with Derek Bridge. 043 * @version 1.0 044 * 045 */ 046 public class RestaurantsConnector implements Connector 047 { 048 private URL file; 049 public RestaurantsConnector(String sourceFile) 050 { 051 file = jcolibri.util.FileIO.findFile(sourceFile); 052 } 053 054 /* (non-Javadoc) 055 * @see jcolibri.cbrcore.Connector#close() 056 */ 057 public void close() 058 { 059 // TODO Auto-generated method stub 060 061 } 062 063 /* (non-Javadoc) 064 * @see jcolibri.cbrcore.Connector#deleteCases(java.util.Collection) 065 */ 066 public void deleteCases(Collection<CBRCase> cases) 067 { 068 // TODO Auto-generated method stub 069 070 } 071 072 /* (non-Javadoc) 073 * @see jcolibri.cbrcore.Connector#initFromXMLfile(java.net.URL) 074 */ 075 public void initFromXMLfile(URL file) throws InitializingException 076 { 077 // TODO Auto-generated method stub 078 079 } 080 081 /* (non-Javadoc) 082 * @see jcolibri.cbrcore.Connector#retrieveAllCases() 083 */ 084 public Collection<CBRCase> retrieveAllCases() 085 { 086 Collection<CBRCase> res = new ArrayList<CBRCase>(); 087 088 try 089 { 090 BufferedReader br = new BufferedReader( new InputStreamReader(file.openStream())); 091 String line = ""; 092 while ((line = br.readLine()) != null) 093 { 094 RestaurantDescription restaurant = new RestaurantDescription(); 095 restaurant.setName(line); 096 restaurant.setAddress(br.readLine()); 097 restaurant.setLocation(br.readLine()); 098 restaurant.setPhone(br.readLine()); 099 restaurant.setDescription(new IETextOpenNLP(br.readLine())); 100 br.readLine(); 101 br.readLine(); 102 br.readLine(); 103 CBRCase _case = new CBRCase(); 104 _case.setDescription(restaurant); 105 res.add(_case); 106 107 } 108 br.close(); 109 } catch (IOException e) 110 { 111 org.apache.commons.logging.LogFactory.getLog(this.getClass()).error(e); 112 113 } 114 115 return res; 116 } 117 118 /* (non-Javadoc) 119 * @see jcolibri.cbrcore.Connector#retrieveSomeCases(jcolibri.cbrcore.CaseBaseFilter) 120 */ 121 public Collection<CBRCase> retrieveSomeCases(CaseBaseFilter filter) 122 { 123 // TODO Auto-generated method stub 124 return null; 125 } 126 127 /* (non-Javadoc) 128 * @see jcolibri.cbrcore.Connector#storeCases(java.util.Collection) 129 */ 130 public void storeCases(Collection<CBRCase> cases) 131 { 132 // TODO Auto-generated method stub 133 134 } 135 136 }