DateTimeUtils.java 8.21 KB
package org.joda.time;

import java.lang.reflect.Method;
import java.text.DateFormatSymbols;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Locale;
import java.util.Map;
import org.joda.time.chrono.ISOChronology;

public class DateTimeUtils
{
  private static final c a;
  private static volatile MillisProvider b;
  private static volatile Map<String, DateTimeZone> c;
  
  static
  {
    Object localObject = new c();
    a = (c)localObject;
    b = (MillisProvider)localObject;
    localObject = new LinkedHashMap();
    ((Map)localObject).put("UT", DateTimeZone.UTC);
    ((Map)localObject).put("UTC", DateTimeZone.UTC);
    ((Map)localObject).put("GMT", DateTimeZone.UTC);
    a((Map)localObject, "EST", "America/New_York");
    a((Map)localObject, "EDT", "America/New_York");
    a((Map)localObject, "CST", "America/Chicago");
    a((Map)localObject, "CDT", "America/Chicago");
    a((Map)localObject, "MST", "America/Denver");
    a((Map)localObject, "MDT", "America/Denver");
    a((Map)localObject, "PST", "America/Los_Angeles");
    a((Map)localObject, "PDT", "America/Los_Angeles");
    c = Collections.unmodifiableMap((Map)localObject);
  }
  
  private static void a()
    throws SecurityException
  {
    SecurityManager localSecurityManager = System.getSecurityManager();
    if (localSecurityManager != null) {
      localSecurityManager.checkPermission(new JodaTimePermission("CurrentTime.setProvider"));
    }
  }
  
  private static void a(Map<String, DateTimeZone> paramMap, String paramString1, String paramString2)
  {
    try
    {
      paramMap.put(paramString1, DateTimeZone.forID(paramString2));
      return;
    }
    catch (RuntimeException paramMap) {}
  }
  
  public static final long currentTimeMillis()
  {
    return b.getMillis();
  }
  
  public static final long fromJulianDay(double paramDouble)
  {
    return ((paramDouble - 2440587.5D) * 8.64E7D);
  }
  
  public static final Chronology getChronology(Chronology paramChronology)
  {
    Object localObject = paramChronology;
    if (paramChronology == null) {
      localObject = ISOChronology.getInstance();
    }
    return (Chronology)localObject;
  }
  
  public static final DateFormatSymbols getDateFormatSymbols(Locale paramLocale)
  {
    try
    {
      DateFormatSymbols localDateFormatSymbols = (DateFormatSymbols)DateFormatSymbols.class.getMethod("getInstance", new Class[] { Locale.class }).invoke(null, new Object[] { paramLocale });
      return localDateFormatSymbols;
    }
    catch (Exception localException) {}
    return new DateFormatSymbols(paramLocale);
  }
  
  public static final Map<String, DateTimeZone> getDefaultTimeZoneNames()
  {
    return c;
  }
  
  public static final long getDurationMillis(ReadableDuration paramReadableDuration)
  {
    if (paramReadableDuration == null) {
      return 0L;
    }
    return paramReadableDuration.getMillis();
  }
  
  public static final Chronology getInstantChronology(ReadableInstant paramReadableInstant)
  {
    if (paramReadableInstant == null) {
      paramReadableInstant = ISOChronology.getInstance();
    }
    Chronology localChronology;
    do
    {
      return paramReadableInstant;
      localChronology = paramReadableInstant.getChronology();
      paramReadableInstant = localChronology;
    } while (localChronology != null);
    return ISOChronology.getInstance();
  }
  
  public static final long getInstantMillis(ReadableInstant paramReadableInstant)
  {
    if (paramReadableInstant == null) {
      return currentTimeMillis();
    }
    return paramReadableInstant.getMillis();
  }
  
  public static final Chronology getIntervalChronology(ReadableInstant paramReadableInstant1, ReadableInstant paramReadableInstant2)
  {
    Object localObject = null;
    if (paramReadableInstant1 != null) {
      paramReadableInstant1 = paramReadableInstant1.getChronology();
    }
    for (;;)
    {
      paramReadableInstant2 = paramReadableInstant1;
      if (paramReadableInstant1 == null) {
        paramReadableInstant2 = ISOChronology.getInstance();
      }
      return paramReadableInstant2;
      paramReadableInstant1 = (ReadableInstant)localObject;
      if (paramReadableInstant2 != null) {
        paramReadableInstant1 = paramReadableInstant2.getChronology();
      }
    }
  }
  
  public static final Chronology getIntervalChronology(ReadableInterval paramReadableInterval)
  {
    if (paramReadableInterval == null) {
      paramReadableInterval = ISOChronology.getInstance();
    }
    Chronology localChronology;
    do
    {
      return paramReadableInterval;
      localChronology = paramReadableInterval.getChronology();
      paramReadableInterval = localChronology;
    } while (localChronology != null);
    return ISOChronology.getInstance();
  }
  
  public static final PeriodType getPeriodType(PeriodType paramPeriodType)
  {
    PeriodType localPeriodType = paramPeriodType;
    if (paramPeriodType == null) {
      localPeriodType = PeriodType.standard();
    }
    return localPeriodType;
  }
  
  public static final ReadableInterval getReadableInterval(ReadableInterval paramReadableInterval)
  {
    Object localObject = paramReadableInterval;
    if (paramReadableInterval == null)
    {
      long l = currentTimeMillis();
      localObject = new Interval(l, l);
    }
    return (ReadableInterval)localObject;
  }
  
  public static final DateTimeZone getZone(DateTimeZone paramDateTimeZone)
  {
    DateTimeZone localDateTimeZone = paramDateTimeZone;
    if (paramDateTimeZone == null) {
      localDateTimeZone = DateTimeZone.getDefault();
    }
    return localDateTimeZone;
  }
  
  public static final boolean isContiguous(ReadablePartial paramReadablePartial)
  {
    if (paramReadablePartial == null) {
      throw new IllegalArgumentException("Partial must not be null");
    }
    DurationFieldType localDurationFieldType = null;
    int i = 0;
    while (i < paramReadablePartial.size())
    {
      DateTimeField localDateTimeField = paramReadablePartial.getField(i);
      if ((i > 0) && (localDateTimeField.getRangeDurationField().getType() != localDurationFieldType)) {
        return false;
      }
      localDurationFieldType = localDateTimeField.getDurationField().getType();
      i += 1;
    }
    return true;
  }
  
  public static final void setCurrentMillisFixed(long paramLong)
    throws SecurityException
  {
    a();
    b = new a(paramLong);
  }
  
  public static final void setCurrentMillisOffset(long paramLong)
    throws SecurityException
  {
    
    if (paramLong == 0L)
    {
      b = a;
      return;
    }
    b = new b(paramLong);
  }
  
  public static final void setCurrentMillisProvider(MillisProvider paramMillisProvider)
    throws SecurityException
  {
    if (paramMillisProvider == null) {
      throw new IllegalArgumentException("The MillisProvider must not be null");
    }
    a();
    b = paramMillisProvider;
  }
  
  public static final void setCurrentMillisSystem()
    throws SecurityException
  {
    a();
    b = a;
  }
  
  public static final void setDefaultTimeZoneNames(Map<String, DateTimeZone> paramMap)
  {
    c = Collections.unmodifiableMap(new HashMap(paramMap));
  }
  
  public static final double toJulianDay(long paramLong)
  {
    return paramLong / 8.64E7D + 2440587.5D;
  }
  
  public static final long toJulianDayNumber(long paramLong)
  {
    return Math.floor(toJulianDay(paramLong) + 0.5D);
  }
  
  public static abstract interface MillisProvider
  {
    public abstract long getMillis();
  }
  
  static final class a
    implements DateTimeUtils.MillisProvider
  {
    private final long a;
    
    a(long paramLong)
    {
      this.a = paramLong;
    }
    
    public final long getMillis()
    {
      return this.a;
    }
  }
  
  static final class b
    implements DateTimeUtils.MillisProvider
  {
    private final long a;
    
    b(long paramLong)
    {
      this.a = paramLong;
    }
    
    public final long getMillis()
    {
      return System.currentTimeMillis() + this.a;
    }
  }
  
  static final class c
    implements DateTimeUtils.MillisProvider
  {
    public final long getMillis()
    {
      return System.currentTimeMillis();
    }
  }
}


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