/[projects]/dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/AddressUtils.java
ViewVC logotype

Diff of /dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/AddressUtils.java

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

dao/DaoAdresseService/src/dk/daoas/daoadresseservice/AddressUtils.java revision 2267 by torben, Thu Feb 12 13:57:32 2015 UTC dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/AddressUtils.java revision 2457 by torben, Fri Mar 20 13:57:47 2015 UTC
# Line 12  public class AddressUtils { Line 12  public class AddressUtils {
12                  public String etage = "";                  public String etage = "";
13                  public String lejlighed = "";                  public String lejlighed = "";
14                  public String resten = "";                  public String resten = "";
15                    
16                    @Override
17                    public String toString() {
18                            return vej + " / " + husnr + " / " + litra;
19                    }
20            }
21            
22            public static char fjernAccentTegn(char c) {
23                    switch (c) {
24                    case 'é':
25                            return 'e';
26                    case 'è':
27                            return 'e';
28                            
29                    case 'û':
30                            return 'u';
31                    case 'ü':
32                            return 'u';
33                            
34                    case 'ö':
35                            return 'o';
36                    case 'ô':
37                            return 'o';
38    
39                    case 'ä':
40                            return 'a';
41                    case 'â':
42                            return 'a';
43                            
44                    case 'ñ':
45                            return 'n';                    
46                                    
47                    default:
48                            return c;
49                    }              
50          }          }
51                    
52          public static String vaskVejnavn(String indVejnavn) {          public static String vaskVejnavn(String indVejnavn) {
53                  String out = indVejnavn.toLowerCase();                  StringBuilder sb = new StringBuilder();
54                  out = out.replace(" ", "");                  char chars[] = indVejnavn.toCharArray();
55                  out = out.replace(".", "");                  
56                  out = out.replace(",", "");                  for (char c: chars) {                  
57                  out = out.replace("-", "");                          if ( Character.isAlphabetic(c)) {
58                  out = out.replace("/", "");                                  c = Character.toLowerCase(c);
59                  out = out.replace("\\", "");                                  c = fjernAccentTegn(c);
60                  out = out.replace("'", "");                                  
61                                    sb.append( c );
62                            } else if ( Character.isDigit(c)) {
63                                    sb.append(c);
64                            }
65                            
66                    }              
67                    
68                    return sb.toString();
69            }
70            
71            public static String injectIntoBk(String bkrute, String injected) {
72                    if (bkrute == null)
73                            return null;
74                    
75                    String parts[] = bkrute.split("/");
76                    
77                    if (parts.length != 4) {
78                            System.out.println(">BK " + bkrute);
79                            return bkrute;
80                    }
81                                    
82                  return out;                  return parts[0] + "/" + parts[1] + "/" + parts[2] + "/" + injected + parts[3];
83          }          }
84                    
85    
# Line 45  public class AddressUtils { Line 100  public class AddressUtils {
100                  while (i<len && (indAdresse.charAt(i) == '.' || indAdresse.charAt(i) == ',' || indAdresse.charAt(i) == ' ') ) {                  while (i<len && (indAdresse.charAt(i) == '.' || indAdresse.charAt(i) == ',' || indAdresse.charAt(i) == ' ') ) {
101                          i++;                          i++;
102                  }                  }
103                    
104    
105                    // alle tegn frem til og med første bogstav er også en del af vejnavn
106                    while ((i < len) && Character.isAlphabetic(indAdresse.charAt(i))==false ) {
107                            delStreng.append( indAdresse.charAt(i) );
108                            i++;
109                    }
110    
111    
112                  // alle karakterer indtil det første tal er vejnavn                  // alle karakterer indtil det første tal er vejnavn
# Line 52  public class AddressUtils { Line 114  public class AddressUtils {
114                          delStreng.append( indAdresse.charAt(i) );                          delStreng.append( indAdresse.charAt(i) );
115                          i++;                          i++;
116                  }                  }
117                  result.vej = WordUtils.capitalize( delStreng.toString().trim() );                  
118    
119                    result.vej = delStreng.toString().toLowerCase().trim();
120                    if ( result.vej.endsWith(".") || result.vej.endsWith(",")) {
121                            result.vej =  result.vej.substring(0, result.vej.length() - 1);
122                            result.vej = result.vej.trim();
123                    }
124                    
125                    //special case - hvis strengen ender med ' nr' skal ' nr' fjernes
126                    if ( result.vej.endsWith(" nr")) {
127                            result.vej =  result.vej.substring(0, result.vej.length() - 3);
128                    }
129                    
130                    result.vej = WordUtils.capitalize( result.vej.trim() );
131                                    
132    
133    
# Line 97  public class AddressUtils { Line 172  public class AddressUtils {
172                  if (i>=len) //THN tilføjelse                  if (i>=len) //THN tilføjelse
173                          return result;                          return result;
174                                    
175                  if (Character.isAlphabetic(indAdresse.charAt(i)) &&                  if (Character.isAlphabetic(indAdresse.charAt(i) )) {
176                                  (i+1 == len || Character.isAlphabetic(indAdresse.charAt(i+1)) == false                          char current = Character.toUpperCase( indAdresse.charAt(i) );
177                            
178                            if (current != 'Æ'&& current != 'Ø' && current != 'Å') {
179                                    if ( (i+1 == len ||
180                                                    (Character.isAlphabetic(indAdresse.charAt(i+1) ) == false
181                                                    /*&& indAdresse.charAt(i+1) != '.'*/
182                                                    
183                                                    && checkCo(indAdresse,i) == false // Fra sortér C/O
184                                                                    )
185                                                  )                                                  )
186                                  ) {                                          ) {
187                          result.litra = "" + indAdresse.charAt(i);                                          result.litra = "" + current;
188                          result.litra = result.litra.toUpperCase();                                          i++;
189                                    }
190                            }
191                    }
192                    
193                    // ignorer blanke og komma og punktum
194                    while (i<len && (indAdresse.charAt(i) == '.' || indAdresse.charAt(i) == ',' || indAdresse.charAt(i) == ' ') ) {
195                          i++;                          i++;
196                  }                  }
197                                    
# Line 191  public class AddressUtils { Line 280  public class AddressUtils {
280                  }                  }
281                                    
282                  // saml resten op (kan gøres smartere med en substr)                  // saml resten op (kan gøres smartere med en substr)
283                  result.resten = indAdresse.substring(i);                  result.resten = indAdresse.substring(i).trim();
284                                    
285                  return result;                  return result;
286          }          }
287                    
288            public static boolean checkCo(String addr, int pos) {
289                    
290                    if ( StringUtils.substring(addr, pos, pos+3).equalsIgnoreCase("C/O") )
291                            return true;
292                    
293                    return false;
294    
295            }
296            
297  }  }
298    
299    

Legend:
Removed from v.2267  
changed lines
  Added in v.2457

  ViewVC Help
Powered by ViewVC 1.1.20