< prev index next >

make/jdk/src/classes/build/tools/cldrconverter/MetaZonesParseHandler.java

Print this page
rev 49854 : 8181157: CLDR Timezone name fallback implementation
Reviewed-by: sherman

*** 33,42 **** --- 33,44 ---- import org.xml.sax.Attributes; import org.xml.sax.InputSource; import org.xml.sax.SAXException; class MetaZonesParseHandler extends AbstractLDMLHandler<String> { + final static String NO_METAZONE_KEY = "no.metazone.defined"; + private String tzid, metazone; // for java.time.format.ZoneNames.java private List<String> mzoneMapEntryList = new ArrayList<>(); private Map<String, String> zones = new HashMap<>();
*** 99,112 **** @Override public void endElement(String uri, String localName, String qName) throws SAXException { assert qName.equals(currentContainer.getqName()) : "current=" + currentContainer.getqName() + ", param=" + qName; switch (qName) { case "timezone": ! if (tzid == null || metazone == null) { throw new InternalError(); ! } put(tzid, metazone); break; } currentContainer = currentContainer.getParent(); } --- 101,121 ---- @Override public void endElement(String uri, String localName, String qName) throws SAXException { assert qName.equals(currentContainer.getqName()) : "current=" + currentContainer.getqName() + ", param=" + qName; switch (qName) { case "timezone": ! if (tzid == null) { throw new InternalError(); ! } else if (metazone == null) { ! String no_meta = get(NO_METAZONE_KEY); ! put(NO_METAZONE_KEY, no_meta == null ? tzid : no_meta + " " + tzid); ! CLDRConverter.info("No metazone defined for %s%n", tzid); ! } else { put(tzid, metazone); + } + tzid = null; + metazone = null; break; } currentContainer = currentContainer.getParent(); }
< prev index next >