/[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

revision 2267 by torben, Thu Feb 12 13:57:32 2015 UTC revision 2417 by torben, Sun Mar 1 16:47:34 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();
                 out = out.replace(".", "");  
                 out = out.replace(",", "");  
                 out = out.replace("-", "");  
                 out = out.replace("/", "");  
                 out = out.replace("\\", "");  
                 out = out.replace("'", "");  
55                                    
56                  return out;                  for (char c: chars) {                  
57                            if ( Character.isAlphabetic(c)) {
58                                    c = Character.toLowerCase(c);
59                                    c = fjernAccentTegn(c);
60                                    
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                    String parts[] = bkrute.split("/");
73                    
74                    if (parts.length != 4) {
75                            System.out.println(">BK " + bkrute);
76                            return bkrute;
77                    }
78                    
79                    return parts[0] + "/" + parts[1] + "/" + parts[2] + "/" + injected + parts[3];
80          }          }
81                    
82    
# Line 45  public class AddressUtils { Line 97  public class AddressUtils {
97                  while (i<len && (indAdresse.charAt(i) == '.' || indAdresse.charAt(i) == ',' || indAdresse.charAt(i) == ' ') ) {                  while (i<len && (indAdresse.charAt(i) == '.' || indAdresse.charAt(i) == ',' || indAdresse.charAt(i) == ' ') ) {
98                          i++;                          i++;
99                  }                  }
100                    
101    
102                    // alle tegn frem til og med første bogstav er også en del af vejnavn
103                    while ((i < len) && Character.isAlphabetic(indAdresse.charAt(i))==false ) {
104                            delStreng.append( indAdresse.charAt(i) );
105                            i++;
106                    }
107    
108    
109                  // alle karakterer indtil det første tal er vejnavn                  // alle karakterer indtil det første tal er vejnavn
# Line 52  public class AddressUtils { Line 111  public class AddressUtils {
111                          delStreng.append( indAdresse.charAt(i) );                          delStreng.append( indAdresse.charAt(i) );
112                          i++;                          i++;
113                  }                  }
114                  result.vej = WordUtils.capitalize( delStreng.toString().trim() );                  
115    
116                    result.vej = delStreng.toString().toLowerCase().trim();
117                    if ( result.vej.endsWith(".") || result.vej.endsWith(",")) {
118                            result.vej =  result.vej.substring(0, result.vej.length() - 1);
119                            result.vej = result.vej.trim();
120                    }
121                    
122                    //special case - hvis strengen ender med ' nr' skal ' nr' fjernes
123                    if ( result.vej.endsWith(" nr")) {
124                            result.vej =  result.vej.substring(0, result.vej.length() - 3);
125                    }
126                    
127                    result.vej = WordUtils.capitalize( result.vej.trim() );
128                                    
129    
130    
# Line 97  public class AddressUtils { Line 169  public class AddressUtils {
169                  if (i>=len) //THN tilføjelse                  if (i>=len) //THN tilføjelse
170                          return result;                          return result;
171                                    
172                  if (Character.isAlphabetic(indAdresse.charAt(i)) &&                  if (Character.isAlphabetic(indAdresse.charAt(i) )) {
173                                  (i+1 == len || Character.isAlphabetic(indAdresse.charAt(i+1)) == false                          char current = Character.toUpperCase( indAdresse.charAt(i) );
174                            
175                            if (current != 'Æ'&& current != 'Ø' && current != 'Å') {
176                                    if ( (i+1 == len ||
177                                                    (Character.isAlphabetic(indAdresse.charAt(i+1) ) == false
178                                                    /*&& indAdresse.charAt(i+1) != '.'*/
179                                                    
180                                                    && checkCo(indAdresse,i) == false // Fra sortér C/O
181                                                                    )
182                                                  )                                                  )
183                                  ) {                                          ) {
184                          result.litra = "" + indAdresse.charAt(i);                                          result.litra = "" + current;
185                          result.litra = result.litra.toUpperCase();                                          i++;
186                                    }
187                            }
188                    }
189                    
190                    // ignorer blanke og komma og punktum
191                    while (i<len && (indAdresse.charAt(i) == '.' || indAdresse.charAt(i) == ',' || indAdresse.charAt(i) == ' ') ) {
192                          i++;                          i++;
193                  }                  }
194                                    
# Line 191  public class AddressUtils { Line 277  public class AddressUtils {
277                  }                  }
278                                    
279                  // saml resten op (kan gøres smartere med en substr)                  // saml resten op (kan gøres smartere med en substr)
280                  result.resten = indAdresse.substring(i);                  result.resten = indAdresse.substring(i).trim();
281                                    
282                  return result;                  return result;
283          }          }
284                    
285            public static boolean checkCo(String addr, int pos) {
286                    
287                    if ( StringUtils.substring(addr, pos, pos+3).equalsIgnoreCase("C/O") )
288                            return true;
289                    
290                    return false;
291    
292            }
293            
294  }  }
295    
296    

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

  ViewVC Help
Powered by ViewVC 1.1.20