GregorianChronology.java 3.94 KB
package org.joda.time.chrono;

import java.util.HashMap;
import java.util.Map;
import org.joda.time.Chronology;
import org.joda.time.DateTimeZone;
import uk;

public final class GregorianChronology
  extends uk
{
  private static final GregorianChronology a = getInstance(DateTimeZone.UTC);
  private static final Map<DateTimeZone, GregorianChronology[]> b = new HashMap();
  private static final long serialVersionUID = -861407383323710522L;
  
  private GregorianChronology(Chronology paramChronology, int paramInt)
  {
    super(paramChronology, paramInt);
  }
  
  public static GregorianChronology getInstance()
  {
    return getInstance(DateTimeZone.getDefault(), 4);
  }
  
  public static GregorianChronology getInstance(DateTimeZone paramDateTimeZone)
  {
    return getInstance(paramDateTimeZone, 4);
  }
  
  public static GregorianChronology getInstance(DateTimeZone paramDateTimeZone, int paramInt)
  {
    DateTimeZone localDateTimeZone = paramDateTimeZone;
    if (paramDateTimeZone == null) {
      localDateTimeZone = DateTimeZone.getDefault();
    }
    for (;;)
    {
      Object localObject1;
      synchronized (b)
      {
        paramDateTimeZone = (GregorianChronology[])b.get(localDateTimeZone);
        localObject1 = paramDateTimeZone;
        if (paramDateTimeZone == null)
        {
          localObject1 = new GregorianChronology[7];
          b.put(localDateTimeZone, localObject1);
        }
        Object localObject2 = localObject1[(paramInt - 1)];
        paramDateTimeZone = (DateTimeZone)localObject2;
        if (localObject2 == null)
        {
          if (localDateTimeZone == DateTimeZone.UTC)
          {
            paramDateTimeZone = new GregorianChronology(null, paramInt);
            break label120;
          }
        }
        else {
          return paramDateTimeZone;
        }
      }
      paramDateTimeZone = new GregorianChronology(ZonedChronology.getInstance(getInstance(DateTimeZone.UTC, paramInt), localDateTimeZone), paramInt);
      label120:
      localObject1[(paramInt - 1)] = paramDateTimeZone;
    }
  }
  
  public static GregorianChronology getInstanceUTC()
  {
    return a;
  }
  
  private Object readResolve()
  {
    Chronology localChronology = getBase();
    int j = getMinimumDaysInFirstWeek();
    int i = j;
    if (j == 0) {
      i = 4;
    }
    if (localChronology == null) {
      return getInstance(DateTimeZone.UTC, i);
    }
    return getInstance(localChronology.getZone(), i);
  }
  
  protected final void assemble(AssembledChronology.Fields paramFields)
  {
    if (getBase() == null) {
      super.assemble(paramFields);
    }
  }
  
  final int c()
  {
    return -292275054;
  }
  
  final int d()
  {
    return 292278993;
  }
  
  final boolean d(int paramInt)
  {
    return ((paramInt & 0x3) == 0) && ((paramInt % 100 != 0) || (paramInt % 400 == 0));
  }
  
  final long f()
  {
    return 31556952000L;
  }
  
  final long f(int paramInt)
  {
    int i = paramInt / 100;
    if (paramInt < 0) {
      i = (i + 3 >> 2) + ((paramInt + 3 >> 2) - i) - 1;
    }
    for (;;)
    {
      long l = paramInt;
      return (i - 719527 + l * 365L) * 86400000L;
      int j = (i >> 2) + ((paramInt >> 2) - i);
      i = j;
      if (d(paramInt)) {
        i = j - 1;
      }
    }
  }
  
  final long g()
  {
    return 15778476000L;
  }
  
  final long h()
  {
    return 2629746000L;
  }
  
  final long i()
  {
    return 31083597720000L;
  }
  
  public final Chronology withUTC()
  {
    return a;
  }
  
  public final Chronology withZone(DateTimeZone paramDateTimeZone)
  {
    DateTimeZone localDateTimeZone = paramDateTimeZone;
    if (paramDateTimeZone == null) {
      localDateTimeZone = DateTimeZone.getDefault();
    }
    if (localDateTimeZone == getZone()) {
      return this;
    }
    return getInstance(localDateTimeZone);
  }
}


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