--- dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/fileupload/AddressSourceNS.java 2016/02/16 13:15:25 2954 +++ dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/coveragefileupload/AddressSourceNS.java 2016/06/08 14:14:28 3042 @@ -1,4 +1,4 @@ -package dk.daoas.adressevedligehold.fileupload; +package dk.daoas.adressevedligehold.coveragefileupload; import java.io.IOException; import java.util.List; @@ -8,16 +8,19 @@ import com.google.common.base.CharMatcher; import com.google.common.base.Splitter; -import dk.daoas.adressevedligehold.fileupload.AddressSourceEntry.EntryType; +import dk.daoas.adressevedligehold.coveragefileupload.AddressSourceEntry.EntryType; public class AddressSourceNS extends AbstractAddressSource { enum NextUgedag { MANDAG,TIRSDAG,ONSDAG,TORSDAG,FREDAG,LORDAG,SONDAG } + + final static char SEPARATOR = ';'; + final static int NUM_FIELDS = 16; - final Splitter splitter = Splitter.on(',') + final Splitter splitter = Splitter.on(SEPARATOR) .trimResults( CharMatcher.is('"') ); List parts; @@ -32,7 +35,7 @@ @Override public void validate() throws IOException { - super.validatNoHeaderLine(22, ','); + super.validatNoHeaderLine(NUM_FIELDS, SEPARATOR); } @@ -47,7 +50,7 @@ return null; parts = splitter.splitToList(line); - if (parts.size() != 22) { + if (parts.size() != NUM_FIELDS) { throw new IOException("Not enough fields in line " + line); } } @@ -61,57 +64,53 @@ entry.gadeid = Integer.parseInt( parts.get(0) ); entry.vejnavn = parts.get(1); - //stednavn = parts.get(2); - //ukendtt = parts.get(3); - entry.postnr = Short.parseShort( parts.get(4) ); - entry.rute = parts.get(5); - entry.husnr = Short.parseShort( parts.get(6) ); - entry.litra = parts.get(7); - entry.tilHusnr = Short.parseShort( parts.get(8) ); - entry.tilLitra = parts.get(9); - //sekvens = parts.get(10) - //fradato = parts.get(11) - //tildato = parts.get(12) - //distributor = parts.get(13) - //inspektorkode = parts.get(21) + entry.postnr = Short.parseShort( parts.get(2) ); + entry.rute = parts.get(3); + entry.husnr = Short.parseShort( parts.get(4) ); + entry.litra = parts.get(5); + entry.tilHusnr = Short.parseShort( parts.get(6) ); + entry.tilLitra = parts.get(7); + + //inspektorkode = parts.get(8) - if (entry.tilLitra.equals("")) { + /* gælder ikke længere efter NS/Dimaps migreringen. + * if (entry.tilLitra.equals("")) { entry.tilLitra = "Z"; // hvis der ikke er angivet en slut litra, så dækker de alle litra kombinationer - } + }*/ switch (nextUgedag) { case MANDAG: - entry.koreliste = parts.get(14); + entry.koreliste = parts.get(9); entry.ugedage = EntryUgedage.MAN; nextUgedag = NextUgedag.TIRSDAG; break; case TIRSDAG: - entry.koreliste = parts.get(15); + entry.koreliste = parts.get(10); entry.ugedage = EntryUgedage.TIR; nextUgedag = NextUgedag.ONSDAG; break; case ONSDAG: - entry.koreliste = parts.get(16); + entry.koreliste = parts.get(11); entry.ugedage = EntryUgedage.ONS; nextUgedag = NextUgedag.TORSDAG; break; case TORSDAG: - entry.koreliste = parts.get(17); + entry.koreliste = parts.get(12); entry.ugedage = EntryUgedage.TOR; nextUgedag = NextUgedag.FREDAG; break; case FREDAG: - entry.koreliste = parts.get(18); + entry.koreliste = parts.get(13); entry.ugedage = EntryUgedage.FRE; nextUgedag = NextUgedag.LORDAG; break; case LORDAG: - entry.koreliste = parts.get(19); + entry.koreliste = parts.get(14); entry.ugedage = EntryUgedage.LOR; nextUgedag = NextUgedag.SONDAG; break; case SONDAG: - entry.koreliste = parts.get(20); + entry.koreliste = parts.get(15); entry.ugedage = EntryUgedage.SON; nextUgedag = NextUgedag.MANDAG; break;