/[projects]/dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/fileupload/AddressSourceDAO.java
ViewVC logotype

Diff of /dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/fileupload/AddressSourceDAO.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/AddressSourceDAO.java revision 2861 by torben, Thu Jan 28 11:03:14 2016 UTC dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/fileupload/AddressSourceDAO.java revision 2954 by torben, Tue Feb 16 13:15:25 2016 UTC
# Line 1  Line 1 
1  package dk.daoas.adressevedligehold;  package dk.daoas.adressevedligehold.fileupload;
2    
 import java.io.BufferedReader;  
3  import java.io.IOException;  import java.io.IOException;
 import java.io.InputStream;  
 import java.io.InputStreamReader;  
 import java.nio.charset.Charset;  
4    
5  import org.apache.commons.fileupload.FileItem;  import org.apache.commons.fileupload.FileItem;
6    
7  import dk.daoas.adressevedligehold.AddressSourceEntry.EntryType;  import dk.daoas.adressevedligehold.fileupload.AddressSourceEntry.EntryType;
 import dk.daoas.adressevedligehold.util.DeduplicateHelper;  
8    
9  public class AddressSourceDAO implements AddressSource {  public class AddressSourceDAO extends AbstractAddressSource {
10                    
11          final static String DAO = "DAO";          final static String DAO = "DAO";
12                    
         DeduplicateHelper<String> dirigeringsCache = new DeduplicateHelper<String>();  
           
         FileItem file;  
           
         InputStream is;  
         InputStreamReader isr;  
         BufferedReader br;  
           
         int lineCount = 0;  
13                                    
14          public AddressSourceDAO(FileItem file) throws Exception {          public AddressSourceDAO(FileItem file) throws Exception {
15                  this.file = file;                  super(file);
   
16    
   
         }  
   
         @Override  
         public String getFilename() {  
                 return file.getName();  
17          }          }
18                    
19          @Override          @Override
20          public void validate() throws IOException {          public void validate() throws IOException {
21                  try {                  super.validateWithHeader(17, ';');
                         is = file.getInputStream();  
                         isr = new InputStreamReader(is, Charset.forName("ISO-8859-1") );  
                         br = new BufferedReader(isr);  
                           
                         String line = br.readLine();  
                         if (line == null) {  
                                 throw new IOException("Can't read 1st line - is file empty?");  
                         }                        
                           
                         String[] parts = line.split(";");  
                         if (parts.length != 17) {  
                                 throw new IOException("Not enough fields in CSV file. Found " + parts.length + ", expected 17");  
                         }  
   
   
                           
                 } catch (Exception e) {  
                         try {  
                                 br.close();  
                                 isr.close();  
                                 is.close();  
                         } catch (Exception e2) {  
                                 System.out.println("Error cleaning up resources");  
                         }  
                           
                         throw e; // Re-throw  
                           
                 }  
22          }          }
23                    
24    
         //TODO: Skal csv parsning klares med Apache Commons CSV ?  
25    
26          @Override          @Override
27          public AddressSourceEntry getNextEntry() throws IOException {          public AddressSourceEntry getNextEntry() throws IOException {
# Line 82  public class AddressSourceDAO implements Line 32  public class AddressSourceDAO implements
32                  if (line.trim().equals(""))                  if (line.trim().equals(""))
33                          return null;                          return null;
34                                    
                 //System.out.println(line);  
35                                    
36                  AddressSourceEntry entry = new AddressSourceEntry( EntryType.TypeAddressRange);                  AddressSourceEntry entry = new AddressSourceEntry( EntryType.TypeAddressRange);
37                  entry.distributor = DAO;                  entry.distributor = DAO;
# Line 134  public class AddressSourceDAO implements Line 83  public class AddressSourceDAO implements
83          public String getDistributor() {          public String getDistributor() {
84                  return DAO;                  return DAO;
85          }          }
86            
87          @Override //AutoCloseable          @Override
88          public void close() throws Exception {          public boolean calculateDistances() {
89                  System.out.println("Closing " + DAO + " after lines " + lineCount);                  return true; //DAO skal beregne afstande
                 try {  
                         br.close();  
                         isr.close();  
                         is.close();  
   
                         file.delete();  
                           
                 } catch (Exception e) {  
                         System.out.println("Error on closing " + e.getMessage() );  
                 }  
                   
                   
90          }          }
91    
92  }  }

Legend:
Removed from v.2861  
changed lines
  Added in v.2954

  ViewVC Help
Powered by ViewVC 1.1.20