Changeset 5931 for SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/lang/LanguagesISO693_3.java
- Timestamp:
- 01/16/15 19:24:55 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/lang/LanguagesISO693_3.java
r5900 r5931 28 28 public static class Language { 29 29 30 String code, name; 30 // code is ISO-639-3 (3 letters) while code_2 is ISO-639-2 (2 letters) 31 String code, code_2, name; 31 32 32 public Language(String code, String name) {33 public Language(String code, String code_2, String name) { 33 34 this.code = code; 35 this.code_2 = code_2; 34 36 this.name = name; 35 37 } 36 38 } 37 39 38 private Map<String, Language> code2Lang = new HashMap<String, Language>(); 39 private Map<String, Language> name2Lang = new HashMap<String, Language>(); 40 private Map<String, Language> codeToLang = new HashMap<String, Language>(); 41 private Map<String, Language> nameToLang = new HashMap<String, Language>(); 42 private Map<String, Language> code_2ToLang = new HashMap<String, Language>(); 40 43 41 44 private LanguagesISO693_3() { 42 45 InputStream is = LanguagesISO693_3.class.getResourceAsStream(LANGUAGES_FILE_PATH); 43 46 try (BufferedReader br = new BufferedReader(new InputStreamReader(is, LANGUAGES_FILE_ENCODING))) { 44 String line ;47 String line = br.readLine(); // ignore first line 45 48 while ((line = br.readLine()) != null) { 46 49 if (line.length() > 0) { … … 50 53 continue; 51 54 } 52 String code = toks[0]; 53 String name = toks[6]; 54 Language l = new Language(code, name); 55 code2Lang.put(code, l); 56 name2Lang.put(name, l); 55 String code = toks[0].trim(); 56 String code_2 = toks[3].trim().isEmpty() ? null : toks[3].trim(); 57 if (code_2 != null && code_2.length() != 2) { 58 throw new RuntimeException("bad code_2 code: " + code_2); 59 } 60 String name = toks[6].trim(); 61 Language l = new Language(code, code_2, name); 62 codeToLang.put(code, l); 63 if (code_2 != null) { 64 code_2ToLang.put(code_2, l); 65 } 66 nameToLang.put(name, l); 57 67 } 58 68 } … … 63 73 ObjectWriter ow = new ObjectMapper().writerWithDefaultPrettyPrinter(); 64 74 try { 65 System.out.println(ow.writeValueAsString(code 2Lang));75 System.out.println(ow.writeValueAsString(codeToLang)); 66 76 } catch (JsonProcessingException ex) { 67 77 } … … 76 86 77 87 public Set<String> getCodes() { 78 return code2Lang.keySet(); 88 return codeToLang.keySet(); 89 } 90 91 public String codeForCode639_2(String code639_2) { 92 if (code639_2 == null) { 93 return null; 94 } 95 Language l = code_2ToLang.get(code639_2); 96 if (l == null) { 97 log.error("Unknown 639-2 code: " + code639_2); 98 return null; 99 } 100 return l.code; 79 101 } 80 102 81 103 public String codeForName(String name) { 82 Language l = name 2Lang.get(name);104 Language l = nameToLang.get(name); 83 105 if (l == null) { 84 106 log.error("Unknown language name: " + name); … … 89 111 90 112 public String nameForCode(String code) { 91 Language l = code 2Lang.get(code);113 Language l = codeToLang.get(code); 92 114 if (l == null) { 93 115 log.error("Unknown language code: " + code);
Note: See TracChangeset
for help on using the changeset viewer.