CachedDateTimeZone.java 4.11 KB
package org.joda.time.tz;

import org.joda.time.DateTimeZone;

public class CachedDateTimeZone
  extends DateTimeZone
{
  private static final int a;
  private static final long serialVersionUID = 5472298452022250685L;
  private final DateTimeZone b;
  private final a[] c = new a[a + 1];
  
  static
  {
    try
    {
      Integer localInteger = Integer.getInteger("org.joda.time.tz.CachedDateTimeZone.size");
      if (localInteger == null)
      {
        i = 512;
        a = i - 1;
        return;
      }
    }
    catch (SecurityException localSecurityException)
    {
      for (;;)
      {
        Object localObject = null;
        continue;
        int i = ((Integer)localObject).intValue() - 1;
        int j = 0;
        while (i > 0)
        {
          j += 1;
          i >>= 1;
        }
        i = 1 << j;
      }
    }
  }
  
  private CachedDateTimeZone(DateTimeZone paramDateTimeZone)
  {
    super(paramDateTimeZone.getID());
    this.b = paramDateTimeZone;
  }
  
  private a a(long paramLong)
  {
    int i = (int)(paramLong >> 32);
    a[] arrayOfa = this.c;
    int j = i & a;
    Object localObject2 = arrayOfa[j];
    Object localObject1;
    if (localObject2 != null)
    {
      localObject1 = localObject2;
      if ((int)(((a)localObject2).a >> 32) == i) {}
    }
    else
    {
      long l1 = 0xFFFFFFFF00000000 & paramLong;
      localObject1 = new a(this.b, l1);
      localObject2 = localObject1;
      long l2;
      for (paramLong = l1;; paramLong = l2)
      {
        l2 = this.b.nextTransition(paramLong);
        if ((l2 == paramLong) || (l2 > (l1 | 0xFFFFFFFF))) {
          break;
        }
        a locala = new a(this.b, l2);
        ((a)localObject2).c = locala;
        localObject2 = locala;
      }
      arrayOfa[j] = localObject1;
    }
    return (a)localObject1;
  }
  
  public static CachedDateTimeZone forZone(DateTimeZone paramDateTimeZone)
  {
    if ((paramDateTimeZone instanceof CachedDateTimeZone)) {
      return (CachedDateTimeZone)paramDateTimeZone;
    }
    return new CachedDateTimeZone(paramDateTimeZone);
  }
  
  public boolean equals(Object paramObject)
  {
    if (this == paramObject) {
      return true;
    }
    if ((paramObject instanceof CachedDateTimeZone)) {
      return this.b.equals(((CachedDateTimeZone)paramObject).b);
    }
    return false;
  }
  
  public String getNameKey(long paramLong)
  {
    for (a locala = a(paramLong);; locala = locala.c) {
      if ((locala.c == null) || (paramLong < locala.c.a))
      {
        if (locala.d == null) {
          locala.d = locala.b.getNameKey(locala.a);
        }
        return locala.d;
      }
    }
  }
  
  public int getOffset(long paramLong)
  {
    for (a locala = a(paramLong);; locala = locala.c) {
      if ((locala.c == null) || (paramLong < locala.c.a))
      {
        if (locala.e == Integer.MIN_VALUE) {
          locala.e = locala.b.getOffset(locala.a);
        }
        return locala.e;
      }
    }
  }
  
  public int getStandardOffset(long paramLong)
  {
    for (a locala = a(paramLong);; locala = locala.c) {
      if ((locala.c == null) || (paramLong < locala.c.a))
      {
        if (locala.f == Integer.MIN_VALUE) {
          locala.f = locala.b.getStandardOffset(locala.a);
        }
        return locala.f;
      }
    }
  }
  
  public DateTimeZone getUncachedZone()
  {
    return this.b;
  }
  
  public int hashCode()
  {
    return this.b.hashCode();
  }
  
  public boolean isFixed()
  {
    return this.b.isFixed();
  }
  
  public long nextTransition(long paramLong)
  {
    return this.b.nextTransition(paramLong);
  }
  
  public long previousTransition(long paramLong)
  {
    return this.b.previousTransition(paramLong);
  }
  
  static final class a
  {
    public final long a;
    public final DateTimeZone b;
    a c;
    String d;
    int e = Integer.MIN_VALUE;
    int f = Integer.MIN_VALUE;
    
    a(DateTimeZone paramDateTimeZone, long paramLong)
    {
      this.a = paramLong;
      this.b = paramDateTimeZone;
    }
  }
}


/* Location:              /home/merong/decompile/hackery-dex2jar.jar!/org/joda/time/tz/CachedDateTimeZone.class
 * Java compiler version: 6 (50.0)
 * JD-Core Version:       0.7.1
 */