12ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller/* GENERATED SOURCE. DO NOT MODIFY. */
2f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert// © 2016 and later: Unicode, Inc. and others.
3f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert// License & terms of use: http://www.unicode.org/copyright.html#License
42ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller/*
52ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller **********************************************************************
62ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Copyright (c) 2003-2010, International Business Machines
72ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Corporation and others.  All Rights Reserved.
82ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller **********************************************************************
92ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Author: Alan Liu
102ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Created: October 2 2003
112ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Since: ICU 2.8
122ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller **********************************************************************
132ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */
142ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller
152ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fullerpackage android.icu.impl;
162ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fullerimport java.util.Date;
172ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller
182ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fullerimport android.icu.util.TimeZone;
192ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller
202ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller/**
211fba789ac68efdd9120a7373f49daef42833e674Neil Fuller * <code>TimeZoneAdapter</code> wraps a android.icu.util.TimeZone
222ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * subclass and inherits from java.util.TimeZone.
232ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Without this class, we would need to 'port' java.util.Date to
241fba789ac68efdd9120a7373f49daef42833e674Neil Fuller * android.icu.util as well, so that Date could interoperate properly
251fba789ac68efdd9120a7373f49daef42833e674Neil Fuller * with the android.icu.util TimeZone and Calendar classes.  With this
261fba789ac68efdd9120a7373f49daef42833e674Neil Fuller * class, we can use java.util.Date together with android.icu.util
272ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * classes.
282ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller *
292ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @see android.icu.util.TimeZone#setDefault
302ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @author Alan Liu
31836e6b40a94ec3fb7545a76cb072960442b7eee9Neil Fuller * @hide Only a subset of ICU is exposed in Android
322ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */
332ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fullerpublic class TimeZoneAdapter extends java.util.TimeZone {
34f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert
352ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    // Generated by serialver from JDK 1.4.1_01
362ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    static final long serialVersionUID = -2040072218820018557L;
37f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert
382ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    /**
391fba789ac68efdd9120a7373f49daef42833e674Neil Fuller     * The contained android.icu.util.TimeZone object.  Must not be null.
402ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     * We delegate all methods to this object.
412ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     */
422ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    private TimeZone zone;
43f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert
442ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    /**
452ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     * Given a java.util.TimeZone, wrap it in the appropriate adapter
461fba789ac68efdd9120a7373f49daef42833e674Neil Fuller     * subclass of android.icu.util.TimeZone and return the adapter.
472ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     */
482ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    public static java.util.TimeZone wrap(android.icu.util.TimeZone tz) {
492ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        return new TimeZoneAdapter(tz);
502ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    }
512ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller
522ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    /**
532ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     * Return the java.util.TimeZone wrapped by this object.
542ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     */
552ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    public android.icu.util.TimeZone unwrap() {
562ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        return zone;
572ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    }
582ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller
592ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    /**
601fba789ac68efdd9120a7373f49daef42833e674Neil Fuller     * Constructs an adapter for a android.icu.util.TimeZone object.
612ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     */
622ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    public TimeZoneAdapter(TimeZone zone) {
632ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        this.zone = zone;
642ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        super.setID(zone.getID());
652ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    }
662ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller
672ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    /**
682ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     * TimeZone API; calls through to wrapped time zone.
692ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     */
70f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert    @Override
712ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    public void setID(String ID) {
722ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        super.setID(ID);
732ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        zone.setID(ID);
74f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert    }
752ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller
762ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    /**
772ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     * TimeZone API; calls through to wrapped time zone.
782ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     */
79f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert    @Override
802ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    public boolean hasSameRules(java.util.TimeZone other) {
812ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        return other instanceof TimeZoneAdapter &&
822ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller            zone.hasSameRules(((TimeZoneAdapter)other).zone);
832ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    }
842ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller
852ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    /**
862ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     * TimeZone API; calls through to wrapped time zone.
872ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     */
88f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert    @Override
892ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    public int getOffset(int era, int year, int month, int day, int dayOfWeek,
902ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller                         int millis) {
912ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        return zone.getOffset(era, year, month, day, dayOfWeek, millis);
922ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    }
932ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller
942ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    /**
952ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     * TimeZone API; calls through to wrapped time zone.
962ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     */
97f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert    @Override
982ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    public int getRawOffset() {
992ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        return zone.getRawOffset();
1002ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    }
1012ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller
1022ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    /**
1032ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     * TimeZone API; calls through to wrapped time zone.
1042ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     */
105f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert    @Override
1062ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    public void setRawOffset(int offsetMillis) {
1072ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        zone.setRawOffset(offsetMillis);
1082ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    }
1092ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller
1102ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    /**
1112ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     * TimeZone API; calls through to wrapped time zone.
1122ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     */
113f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert    @Override
1142ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    public boolean useDaylightTime() {
1152ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        return zone.useDaylightTime();
1162ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    }
1172ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller
1182ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    /**
1192ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     * TimeZone API; calls through to wrapped time zone.
1202ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     */
121f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert    @Override
1222ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    public boolean inDaylightTime(Date date) {
1232ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        return zone.inDaylightTime(date);
1242ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    }
1252ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller
1262ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    /**
1272ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     * Boilerplate API; calls through to wrapped object.
1282ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     */
129f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert    @Override
1302ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    public Object clone() {
1312ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        return new TimeZoneAdapter((TimeZone)zone.clone());
1322ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    }
1332ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller
1342ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    /**
1352ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     * Boilerplate API; calls through to wrapped object.
1362ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     */
137f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert    @Override
1382ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    public synchronized int hashCode() {
1392ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        return zone.hashCode();
1402ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    }
1412ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller
1422ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    /**
1432ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     * Boilerplate API; calls through to wrapped object.
1442ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     */
145f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert    @Override
1462ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    public boolean equals(Object obj) {
1472ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        if (obj instanceof TimeZoneAdapter) {
1482ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller            obj = ((TimeZoneAdapter) obj).zone;
1492ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        }
1502ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        return zone.equals(obj);
1512ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    }
1522ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller
1532ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    /**
1542ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     * Returns a string representation of this object.
1552ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     * @return  a string representation of this object.
1562ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     */
157f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert    @Override
1582ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    public String toString() {
1592ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        return "TimeZoneAdapter: " + zone.toString();
1602ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    }
1612ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller}
162