1 package org.wcb.model.service.impl;
2
3 import com.Ostermiller.util.CSVParser;
4
5 import java.io.*;
6 import java.util.List;
7 import java.util.logging.Level;
8 import java.util.logging.Logger;
9
10 import org.wcb.model.vo.hibernate.Logbook;
11 import org.wcb.model.vo.hibernate.AirportBO;
12 import org.wcb.model.vo.LogImportVO;
13 import org.wcb.model.service.ILogbookService;
14 import org.wcb.model.service.IImportService;
15 import org.wcb.exception.ServiceException;
16 import org.wcb.resources.ImportAirportDataFile;
17 import org.wcb.resources.ImportLogbookDataFile;
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 public class ImportService implements IImportService {
40
41 private Logger LOG = Logger.getLogger(ImportService.class.getName());
42
43 private ILogbookService service;
44
45 public ImportService() {
46 }
47
48 public void setLogService(ILogbookService svc) {
49 this.service = svc;
50 }
51
52 public ILogbookService getLogService() {
53 return this.service;
54 }
55
56
57
58
59
60
61
62
63
64 public boolean processFile(File inFile, LogImportVO vo) throws ServiceException{
65 try {
66 BufferedReader in = new BufferedReader(new FileReader(inFile.getAbsolutePath()));
67 ImportLogbookDataFile utilityParser = new ImportLogbookDataFile();
68 List<Logbook> entries = utilityParser.process(in, vo);
69 service.saveLogBookEntry(entries);
70 return true;
71 }
72 catch (IOException ioe) {
73 LOG.log(Level.WARNING, "Unable to parse and read file " + inFile.getAbsolutePath(), ioe);
74 return false;
75 }
76 }
77
78
79
80
81
82
83
84
85 public boolean processAirportFile(File inFile) throws ServiceException {
86 try {
87 BufferedReader in = new BufferedReader(new FileReader(inFile.getAbsolutePath()));
88 String[][] result = CSVParser.parse(in, ',');
89 ImportAirportDataFile utilityParser = new ImportAirportDataFile();
90 List<AirportBO> airports = utilityParser.marshall(result);
91 service.saveAirports(airports);
92 return true;
93 }
94 catch (IOException ioe) {
95 LOG.log(Level.WARNING, "Unable to parse and read file " + inFile.getAbsolutePath(), ioe);
96 return false;
97 }
98 }
99 }