make/jdk/src/classes/build/tools/cldrconverter/TimeZoneParseHandler.java
author naoto
Tue, 12 Dec 2017 10:21:58 -0800
changeset 48251 57148c79bd75
permissions -rw-r--r--
8176841: Additional Unicode Language-Tag Extensions 8189134: New system properties for the default Locale extensions 8190918: Retrieve the region specific data regardless of language in locale 8191349: Add a new method in j.t.f.DateTimeFormatter to reflect Unicode extensions Reviewed-by: scolebourne, lancea, rriggs, rgoel, nishjain
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
48251
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
     1
/*
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
     2
 * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
     4
 *
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
     7
 * published by the Free Software Foundation.  Oracle designates this
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
     8
 * particular file as subject to the "Classpath" exception as provided
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
     9
 * by Oracle in the LICENSE file that accompanied this code.
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    10
 *
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    11
 * This code is distributed in the hope that it will be useful, but WITHOUT
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    13
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    14
 * version 2 for more details (a copy is included in the LICENSE file that
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    15
 * accompanied this code).
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    16
 *
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    17
 * You should have received a copy of the GNU General Public License version
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    18
 * 2 along with this work; if not, write to the Free Software Foundation,
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    19
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    20
 *
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    21
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    22
 * or visit www.oracle.com if you need additional information or have any
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    23
 * questions.
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    24
 */
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    25
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    26
package build.tools.cldrconverter;
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    27
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    28
import java.io.File;
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    29
import java.io.IOException;
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    30
import org.xml.sax.Attributes;
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    31
import org.xml.sax.InputSource;
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    32
import org.xml.sax.SAXException;
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    33
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    34
/**
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    35
 * Handles parsing of timezone.xml and produces a map from short timezone IDs to
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    36
 * tz database IDs.
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    37
 */
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    38
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    39
class TimeZoneParseHandler extends AbstractLDMLHandler<Object> {
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    40
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    41
    @Override
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    42
    public InputSource resolveEntity(String publicID, String systemID) throws IOException, SAXException {
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    43
        // avoid HTTP traffic to unicode.org
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    44
        if (systemID.startsWith(CLDRConverter.BCP47_LDML_DTD_SYSTEM_ID)) {
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    45
            return new InputSource((new File(CLDRConverter.LOCAL_BCP47_LDML_DTD)).toURI().toString());
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    46
        }
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    47
        return null;
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    48
    }
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    49
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    50
    @Override
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    51
    public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    52
        switch (qName) {
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    53
        case "type":
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    54
            if (!isIgnored(attributes) && !attributes.getValue("deprecated").equals("true")) {
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    55
                put(attributes.getValue("name"), attributes.getValue("alias"));
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    56
            }
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    57
            break;
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    58
        default:
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    59
            // treat anything else as a container
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    60
            pushContainer(qName, attributes);
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    61
            break;
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    62
        }
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    63
    }
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    64
}