| /* |
| ********************************************************************** |
| * Copyright (c) 2003-2010, International Business Machines |
| * Corporation and others. All Rights Reserved. |
| ********************************************************************** |
| * Author: Alan Liu |
| * Created: October 2 2003 |
| * Since: ICU 2.8 |
| ********************************************************************** |
| */ |
| |
| package com.ibm.icu.impl; |
| import java.util.Date; |
| |
| import com.ibm.icu.util.TimeZone; |
| |
| /** |
| * <code>TimeZoneAdapter</code> wraps a com.ibm.icu.util.TimeZone |
| * subclass and inherits from java.util.TimeZone. |
| * Without this class, we would need to 'port' java.util.Date to |
| * com.ibm.icu.util as well, so that Date could interoperate properly |
| * with the com.ibm.icu.util TimeZone and Calendar classes. With this |
| * class, we can use java.util.Date together with com.ibm.icu.util |
| * classes. |
| * |
| * @see com.ibm.icu.util.TimeZone#setDefault |
| * @author Alan Liu |
| * @since ICU 2.8 |
| */ |
| public class TimeZoneAdapter extends java.util.TimeZone { |
| |
| // Generated by serialver from JDK 1.4.1_01 |
| static final long serialVersionUID = -2040072218820018557L; |
| |
| /** |
| * The contained com.ibm.icu.util.TimeZone object. Must not be null. |
| * We delegate all methods to this object. |
| */ |
| private TimeZone zone; |
| |
| /** |
| * Given a java.util.TimeZone, wrap it in the appropriate adapter |
| * subclass of com.ibm.icu.util.TimeZone and return the adapter. |
| */ |
| public static java.util.TimeZone wrap(com.ibm.icu.util.TimeZone tz) { |
| return new TimeZoneAdapter(tz); |
| } |
| |
| /** |
| * Return the java.util.TimeZone wrapped by this object. |
| */ |
| public com.ibm.icu.util.TimeZone unwrap() { |
| return zone; |
| } |
| |
| /** |
| * Constructs an adapter for a com.ibm.icu.util.TimeZone object. |
| */ |
| public TimeZoneAdapter(TimeZone zone) { |
| this.zone = zone; |
| super.setID(zone.getID()); |
| } |
| |
| /** |
| * TimeZone API; calls through to wrapped time zone. |
| */ |
| public void setID(String ID) { |
| super.setID(ID); |
| zone.setID(ID); |
| } |
| |
| /** |
| * TimeZone API; calls through to wrapped time zone. |
| */ |
| public boolean hasSameRules(java.util.TimeZone other) { |
| return other instanceof TimeZoneAdapter && |
| zone.hasSameRules(((TimeZoneAdapter)other).zone); |
| } |
| |
| /** |
| * TimeZone API; calls through to wrapped time zone. |
| */ |
| public int getOffset(int era, int year, int month, int day, int dayOfWeek, |
| int millis) { |
| return zone.getOffset(era, year, month, day, dayOfWeek, millis); |
| } |
| |
| /** |
| * TimeZone API; calls through to wrapped time zone. |
| */ |
| public int getRawOffset() { |
| return zone.getRawOffset(); |
| } |
| |
| /** |
| * TimeZone API; calls through to wrapped time zone. |
| */ |
| public void setRawOffset(int offsetMillis) { |
| zone.setRawOffset(offsetMillis); |
| } |
| |
| /** |
| * TimeZone API; calls through to wrapped time zone. |
| */ |
| public boolean useDaylightTime() { |
| return zone.useDaylightTime(); |
| } |
| |
| /** |
| * TimeZone API; calls through to wrapped time zone. |
| */ |
| public boolean inDaylightTime(Date date) { |
| return zone.inDaylightTime(date); |
| } |
| |
| /** |
| * Boilerplate API; calls through to wrapped object. |
| */ |
| public Object clone() { |
| return new TimeZoneAdapter((TimeZone)zone.clone()); |
| } |
| |
| /** |
| * Boilerplate API; calls through to wrapped object. |
| */ |
| public synchronized int hashCode() { |
| return zone.hashCode(); |
| } |
| |
| /** |
| * Boilerplate API; calls through to wrapped object. |
| */ |
| public boolean equals(Object obj) { |
| if (obj instanceof TimeZoneAdapter) { |
| obj = ((TimeZoneAdapter) obj).zone; |
| } |
| return zone.equals(obj); |
| } |
| |
| /** |
| * Returns a string representation of this object. |
| * @return a string representation of this object. |
| */ |
| public String toString() { |
| return "TimeZoneAdapter: " + zone.toString(); |
| } |
| } |