home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / java / util / TimeZone.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  5.6 KB  |  246 lines

  1. package java.util;
  2.  
  3. import java.io.Serializable;
  4. import java.lang.ref.SoftReference;
  5. import java.security.AccessController;
  6. import java.text.DateFormat;
  7. import java.text.NumberFormat;
  8. import java.text.ParsePosition;
  9. import java.text.SimpleDateFormat;
  10. import sun.security.action.GetPropertyAction;
  11.  
  12. public abstract class TimeZone implements Serializable, Cloneable {
  13.    public static final int SHORT = 0;
  14.    public static final int LONG = 1;
  15.    private static final int ONE_MINUTE = 60000;
  16.    private static final int ONE_HOUR = 3600000;
  17.    private static final int ONE_DAY = 86400000;
  18.    private static Hashtable cachedLocaleData = new Hashtable(3);
  19.    static final long serialVersionUID = 3581463369166924961L;
  20.    // $FF: renamed from: ID java.lang.String
  21.    private String field_0;
  22.    private static TimeZone defaultZone = null;
  23.    static final String GMT_ID = "GMT";
  24.    private static final int GMT_ID_LENGTH = 3;
  25.    private static final String CUSTOM_ID = "Custom";
  26.    private static NumberFormat numberFormat = null;
  27.    private static final TimeZone GMT = new SimpleTimeZone(0, "GMT");
  28.    // $FF: synthetic field
  29.    static Class class$java$util$TimeZoneData;
  30.  
  31.    public abstract int getOffset(int var1, int var2, int var3, int var4, int var5, int var6);
  32.  
  33.    int getOffset(int var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8) {
  34.       return this.getOffset(var1, var2, var3, var4, var5, var6);
  35.    }
  36.  
  37.    public abstract void setRawOffset(int var1);
  38.  
  39.    public abstract int getRawOffset();
  40.  
  41.    public String getID() {
  42.       return this.field_0;
  43.    }
  44.  
  45.    public void setID(String var1) {
  46.       if (var1 == null) {
  47.          throw new NullPointerException();
  48.       } else {
  49.          this.field_0 = var1;
  50.       }
  51.    }
  52.  
  53.    public final String getDisplayName() {
  54.       return this.getDisplayName(false, 1, Locale.getDefault());
  55.    }
  56.  
  57.    public final String getDisplayName(Locale var1) {
  58.       return this.getDisplayName(false, 1, var1);
  59.    }
  60.  
  61.    public final String getDisplayName(boolean var1, int var2) {
  62.       return this.getDisplayName(var1, var2, Locale.getDefault());
  63.    }
  64.  
  65.    public String getDisplayName(boolean var1, int var2, Locale var3) {
  66.       if (var2 != 0 && var2 != 1) {
  67.          throw new IllegalArgumentException("Illegal style: " + var2);
  68.       } else {
  69.          SoftReference var4 = (SoftReference)cachedLocaleData.get(var3);
  70.          SimpleDateFormat var5;
  71.          if (var4 == null || (var5 = (SimpleDateFormat)var4.get()) == null) {
  72.             var5 = new SimpleDateFormat((String)null, var3);
  73.             cachedLocaleData.put(var3, new SoftReference(var5));
  74.          }
  75.  
  76.          SimpleTimeZone var6;
  77.          if (var1 && this.useDaylightTime()) {
  78.             int var7 = 3600000;
  79.  
  80.             try {
  81.                var7 = ((SimpleTimeZone)this).getDSTSavings();
  82.             } catch (ClassCastException var9) {
  83.             }
  84.  
  85.             var6 = new SimpleTimeZone(this.getRawOffset(), this.getID(), 0, 1, 0, 0, 1, 1, 0, 0, var7);
  86.          } else {
  87.             var6 = new SimpleTimeZone(this.getRawOffset(), this.getID());
  88.          }
  89.  
  90.          var5.applyPattern(var2 == 1 ? "zzzz" : "z");
  91.          ((DateFormat)var5).setTimeZone(var6);
  92.          return ((DateFormat)var5).format(new Date(864000000L));
  93.       }
  94.    }
  95.  
  96.    public abstract boolean useDaylightTime();
  97.  
  98.    public abstract boolean inDaylightTime(Date var1);
  99.  
  100.    public static synchronized TimeZone getTimeZone(String var0) {
  101.       Object var1 = TimeZoneData.get(var0);
  102.       if (var1 == null) {
  103.          var1 = parseCustomTimeZone(var0);
  104.       }
  105.  
  106.       if (var1 == null) {
  107.          var1 = (TimeZone)GMT.clone();
  108.       }
  109.  
  110.       return (TimeZone)var1;
  111.    }
  112.  
  113.    public static synchronized String[] getAvailableIDs(int var0) {
  114.       Vector var2 = new Vector();
  115.  
  116.       for(int var3 = 0; var3 < TimeZoneData.zones.length; ++var3) {
  117.          if (TimeZoneData.zones[var3].getRawOffset() == var0) {
  118.             var2.add(TimeZoneData.zones[var3].getID());
  119.          }
  120.       }
  121.  
  122.       String[] var1 = new String[var2.size()];
  123.       var2.toArray(var1);
  124.       return var1;
  125.    }
  126.  
  127.    public static synchronized String[] getAvailableIDs() {
  128.       String[] var0 = new String[TimeZoneData.zones.length];
  129.       int var1 = 0;
  130.  
  131.       for(int var2 = 0; var2 < TimeZoneData.zones.length; ++var2) {
  132.          var0[var1++] = TimeZoneData.zones[var2].getID();
  133.       }
  134.  
  135.       String[] var3 = new String[var1];
  136.       System.arraycopy(var0, 0, var3, 0, var1);
  137.       return var3;
  138.    }
  139.  
  140.    private static native String getSystemTimeZoneID(String var0, String var1);
  141.  
  142.    public static synchronized TimeZone getDefault() {
  143.       if (defaultZone == null) {
  144.          String var0 = (String)AccessController.doPrivileged(new GetPropertyAction("user.timezone"));
  145.          if (var0 == null || var0.equals("")) {
  146.             String var1 = (String)AccessController.doPrivileged(new GetPropertyAction("user.region"));
  147.             String var2 = (String)AccessController.doPrivileged(new GetPropertyAction("java.home"));
  148.             var0 = getSystemTimeZoneID(var2, var1);
  149.             if (var0 == null) {
  150.                var0 = "GMT";
  151.             }
  152.  
  153.             AccessController.doPrivileged(new 1(var0));
  154.          }
  155.  
  156.          defaultZone = getTimeZone(var0);
  157.       }
  158.  
  159.       return (TimeZone)defaultZone.clone();
  160.    }
  161.  
  162.    public static synchronized void setDefault(TimeZone var0) {
  163.       defaultZone = var0;
  164.    }
  165.  
  166.    public boolean hasSameRules(TimeZone var1) {
  167.       return var1 != null && this.getRawOffset() == var1.getRawOffset() && this.useDaylightTime() == var1.useDaylightTime();
  168.    }
  169.  
  170.    public Object clone() {
  171.       try {
  172.          TimeZone var1 = (TimeZone)super.clone();
  173.          var1.field_0 = this.field_0;
  174.          return var1;
  175.       } catch (CloneNotSupportedException var2) {
  176.          throw new InternalError();
  177.       }
  178.    }
  179.  
  180.    private static final SimpleTimeZone parseCustomTimeZone(String var0) {
  181.       if (var0.length() > 3 && var0.regionMatches(true, 0, "GMT", 0, 3)) {
  182.          ParsePosition var1 = new ParsePosition(3);
  183.          boolean var2 = false;
  184.          if (var0.charAt(var1.getIndex()) == '-') {
  185.             var2 = true;
  186.          } else if (var0.charAt(var1.getIndex()) != '+') {
  187.             return null;
  188.          }
  189.  
  190.          var1.setIndex(var1.getIndex() + 1);
  191.          Class var4 = class$java$util$TimeZoneData == null ? (class$java$util$TimeZoneData = class$("java.util.TimeZoneData")) : class$java$util$TimeZoneData;
  192.          synchronized(var4) {
  193.             if (numberFormat == null) {
  194.                numberFormat = NumberFormat.getInstance();
  195.                numberFormat.setParseIntegerOnly(true);
  196.             }
  197.          }
  198.  
  199.          NumberFormat var5 = numberFormat;
  200.          synchronized(var5) {
  201.             int var6 = var1.getIndex();
  202.             Number var7 = numberFormat.parse(var0, var1);
  203.             if (var7 == null) {
  204.                Object var8 = null;
  205.                return (SimpleTimeZone)var8;
  206.             } else {
  207.                int var3 = var7.intValue();
  208.                if (var1.getIndex() < var0.length() && var0.charAt(var1.getIndex()) == ':') {
  209.                   var3 *= 60;
  210.                   var1.setIndex(var1.getIndex() + 1);
  211.                   var7 = numberFormat.parse(var0, var1);
  212.                   if (var7 == null) {
  213.                      Object var16 = null;
  214.                      return (SimpleTimeZone)var16;
  215.                   }
  216.  
  217.                   var3 += var7.intValue();
  218.                } else if (var3 < 30 && var1.getIndex() - var6 <= 2) {
  219.                   var3 *= 60;
  220.                } else {
  221.                   var3 = var3 % 100 + var3 / 100 * 60;
  222.                }
  223.  
  224.                if (var2) {
  225.                   var3 = -var3;
  226.                }
  227.  
  228.                SimpleTimeZone var9 = new SimpleTimeZone(var3 * '\uea60', "Custom");
  229.                return var9;
  230.             }
  231.          }
  232.       } else {
  233.          return null;
  234.       }
  235.    }
  236.  
  237.    // $FF: synthetic method
  238.    static Class class$(String var0) {
  239.       try {
  240.          return Class.forName(var0);
  241.       } catch (ClassNotFoundException var2) {
  242.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  243.       }
  244.    }
  245. }
  246.