public final class org.apache.log4j.pattern.CachedDateFormat extends java.text.DateFormat
{
private static final long serialVersionUID;
public static final int NO_MILLISECONDS;
private static final java.lang.String DIGITS;
public static final int UNRECOGNIZED_MILLISECONDS;
private static final int MAGIC1;
private static final java.lang.String MAGICSTRING1;
private static final int MAGIC2;
private static final java.lang.String MAGICSTRING2;
private static final java.lang.String ZERO_STRING;
private final java.text.DateFormat formatter;
private int millisecondStart;
private long slotBegin;
private java.lang.StringBuffer cache;
private final int expiration;
private long previousTime;
private final java.util.Date tmpDate;
public void <init>(java.text.DateFormat, int)
{
java.lang.StringBuffer v;
java.util.Date v;
int v;
org.apache.log4j.pattern.CachedDateFormat v;
java.lang.IllegalArgumentException v, v;
java.text.DateFormat v;
v := @this: org.apache.log4j.pattern.CachedDateFormat;
v := @parameter: java.text.DateFormat;
v := @parameter: int;
specialinvoke v.<java.text.DateFormat: void <init>()>();
v = new java.lang.StringBuffer;
specialinvoke v.<java.lang.StringBuffer: void <init>(int)>(50);
v.<org.apache.log4j.pattern.CachedDateFormat: java.lang.StringBuffer cache> = v;
v = new java.util.Date;
specialinvoke v.<java.util.Date: void <init>(long)>(0L);
v.<org.apache.log4j.pattern.CachedDateFormat: java.util.Date tmpDate> = v;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("dateFormat cannot be null");
throw v;
label:
if v >= 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("expiration must be non-negative");
throw v;
label:
v.<org.apache.log4j.pattern.CachedDateFormat: java.text.DateFormat formatter> = v;
v.<org.apache.log4j.pattern.CachedDateFormat: int expiration> = v;
v.<org.apache.log4j.pattern.CachedDateFormat: int millisecondStart> = 0;
v.<org.apache.log4j.pattern.CachedDateFormat: long previousTime> = -9223372036854775808L;
v.<org.apache.log4j.pattern.CachedDateFormat: long slotBegin> = -9223372036854775808L;
return;
}
public static int findMillisecondStart(long, java.lang.String, java.text.DateFormat)
{
java.util.Date v, v;
byte v;
java.text.DateFormat v;
boolean v, v, v;
long v, v, v, v, v;
short v;
java.lang.StringBuffer v;
int v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v;
char v, v;
v := @parameter: long;
v := @parameter: java.lang.String;
v := @parameter: java.text.DateFormat;
v = v / 1000L;
v = v * 1000L;
v = v cmp v;
if v <= 0 goto label;
v = v - 1000L;
label:
v = v - v;
v = 654;
v = "654";
if v != 654 goto label;
v = 987;
v = "987";
label:
v = new java.util.Date;
v = v + v;
specialinvoke v.<java.util.Date: void <init>(long)>(v);
v = virtualinvoke v.<java.text.DateFormat: java.lang.String format(java.util.Date)>(v);
v = virtualinvoke v.<java.lang.String: int length()>();
v = virtualinvoke v.<java.lang.String: int length()>();
if v == v goto label;
v = (int) -1;
return v;
label:
v = 0;
label:
v = virtualinvoke v.<java.lang.String: int length()>();
if v >= v goto label;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
if v == v goto label;
v = new java.lang.StringBuffer;
specialinvoke v.<java.lang.StringBuffer: void <init>(java.lang.String)>("ABC");
staticinvoke <org.apache.log4j.pattern.CachedDateFormat: void millisecondFormat(int,java.lang.StringBuffer,int)>(v, v, 0);
v = new java.util.Date;
specialinvoke v.<java.util.Date: void <init>(long)>(v);
v = virtualinvoke v.<java.text.DateFormat: java.lang.String format(java.util.Date)>(v);
v = virtualinvoke v.<java.lang.String: int length()>();
v = virtualinvoke v.<java.lang.String: int length()>();
if v != v goto label;
v = virtualinvoke v.<java.lang.String: int length()>();
v = virtualinvoke v.<java.lang.String: boolean regionMatches(int,java.lang.String,int,int)>(0, v, v, v);
if v == 0 goto label;
v = virtualinvoke v.<java.lang.StringBuffer: java.lang.String toString()>();
v = virtualinvoke v.<java.lang.String: int length()>();
v = virtualinvoke v.<java.lang.String: boolean regionMatches(int,java.lang.String,int,int)>(0, v, v, v);
if v == 0 goto label;
v = "000";
v = "000";
v = virtualinvoke v.<java.lang.String: int length()>();
v = virtualinvoke v.<java.lang.String: boolean regionMatches(int,java.lang.String,int,int)>(0, v, v, v);
if v == 0 goto label;
return v;
label:
v = (int) -1;
return v;
label:
v = v + 1;
goto label;
label:
v = (int) -2;
return v;
}
public java.lang.StringBuffer format(java.util.Date, java.lang.StringBuffer, java.text.FieldPosition)
{
java.text.FieldPosition v;
java.lang.StringBuffer v;
java.util.Date v;
long v;
org.apache.log4j.pattern.CachedDateFormat v;
v := @this: org.apache.log4j.pattern.CachedDateFormat;
v := @parameter: java.util.Date;
v := @parameter: java.lang.StringBuffer;
v := @parameter: java.text.FieldPosition;
v = virtualinvoke v.<java.util.Date: long getTime()>();
virtualinvoke v.<org.apache.log4j.pattern.CachedDateFormat: java.lang.StringBuffer format(long,java.lang.StringBuffer)>(v, v);
return v;
}
public java.lang.StringBuffer format(long, java.lang.StringBuffer)
{
java.util.Date v, v;
byte v, v, v, v, v;
java.text.DateFormat v, v;
long v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.log4j.pattern.CachedDateFormat v;
java.lang.StringBuffer v, v, v, v, v, v, v, v;
int v, v, v, v, v, v, v;
java.lang.String v, v;
v := @this: org.apache.log4j.pattern.CachedDateFormat;
v := @parameter: long;
v := @parameter: java.lang.StringBuffer;
v = v.<org.apache.log4j.pattern.CachedDateFormat: long previousTime>;
v = v cmp v;
if v != 0 goto label;
v = v.<org.apache.log4j.pattern.CachedDateFormat: java.lang.StringBuffer cache>;
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.StringBuffer)>(v);
return v;
label:
v = v.<org.apache.log4j.pattern.CachedDateFormat: int millisecondStart>;
v = (int) -1;
if v == v goto label;
v = v.<org.apache.log4j.pattern.CachedDateFormat: long slotBegin>;
v = v.<org.apache.log4j.pattern.CachedDateFormat: int expiration>;
v = v + v;
v = v cmp v;
if v >= 0 goto label;
v = v.<org.apache.log4j.pattern.CachedDateFormat: long slotBegin>;
v = v cmp v;
if v < 0 goto label;
v = v.<org.apache.log4j.pattern.CachedDateFormat: long slotBegin>;
v = v + 1000L;
v = v cmp v;
if v >= 0 goto label;
v = v.<org.apache.log4j.pattern.CachedDateFormat: int millisecondStart>;
if v < 0 goto label;
v = v.<org.apache.log4j.pattern.CachedDateFormat: long slotBegin>;
v = v - v;
v = v.<org.apache.log4j.pattern.CachedDateFormat: java.lang.StringBuffer cache>;
v = v.<org.apache.log4j.pattern.CachedDateFormat: int millisecondStart>;
staticinvoke <org.apache.log4j.pattern.CachedDateFormat: void millisecondFormat(int,java.lang.StringBuffer,int)>(v, v, v);
label:
v.<org.apache.log4j.pattern.CachedDateFormat: long previousTime> = v;
v = v.<org.apache.log4j.pattern.CachedDateFormat: java.lang.StringBuffer cache>;
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.StringBuffer)>(v);
return v;
label:
v = v.<org.apache.log4j.pattern.CachedDateFormat: java.lang.StringBuffer cache>;
virtualinvoke v.<java.lang.StringBuffer: void setLength(int)>(0);
v = v.<org.apache.log4j.pattern.CachedDateFormat: java.util.Date tmpDate>;
virtualinvoke v.<java.util.Date: void setTime(long)>(v);
v = v.<org.apache.log4j.pattern.CachedDateFormat: java.lang.StringBuffer cache>;
v = v.<org.apache.log4j.pattern.CachedDateFormat: java.text.DateFormat formatter>;
v = v.<org.apache.log4j.pattern.CachedDateFormat: java.util.Date tmpDate>;
v = virtualinvoke v.<java.text.DateFormat: java.lang.String format(java.util.Date)>(v);
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>(v);
v = v.<org.apache.log4j.pattern.CachedDateFormat: java.lang.StringBuffer cache>;
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.StringBuffer)>(v);
v.<org.apache.log4j.pattern.CachedDateFormat: long previousTime> = v;
v = v.<org.apache.log4j.pattern.CachedDateFormat: long previousTime>;
v = v / 1000L;
v = v * 1000L;
v.<org.apache.log4j.pattern.CachedDateFormat: long slotBegin> = v;
v = v.<org.apache.log4j.pattern.CachedDateFormat: long slotBegin>;
v = v.<org.apache.log4j.pattern.CachedDateFormat: long previousTime>;
v = v cmp v;
if v <= 0 goto label;
v = v.<org.apache.log4j.pattern.CachedDateFormat: long slotBegin>;
v = v - 1000L;
v.<org.apache.log4j.pattern.CachedDateFormat: long slotBegin> = v;
label:
v = v.<org.apache.log4j.pattern.CachedDateFormat: int millisecondStart>;
if v < 0 goto label;
v = v.<org.apache.log4j.pattern.CachedDateFormat: java.lang.StringBuffer cache>;
v = virtualinvoke v.<java.lang.StringBuffer: java.lang.String toString()>();
v = v.<org.apache.log4j.pattern.CachedDateFormat: java.text.DateFormat formatter>;
v = staticinvoke <org.apache.log4j.pattern.CachedDateFormat: int findMillisecondStart(long,java.lang.String,java.text.DateFormat)>(v, v, v);
v.<org.apache.log4j.pattern.CachedDateFormat: int millisecondStart> = v;
label:
return v;
}
private static void millisecondFormat(int, java.lang.StringBuffer, int)
{
char v, v, v;
java.lang.StringBuffer v;
int v, v, v, v, v, v, v, v;
java.lang.String v, v, v;
v := @parameter: int;
v := @parameter: java.lang.StringBuffer;
v := @parameter: int;
v = "0123456789";
v = v / 100;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
virtualinvoke v.<java.lang.StringBuffer: void setCharAt(int,char)>(v, v);
v = v + 1;
v = "0123456789";
v = v / 10;
v = v % 10;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
virtualinvoke v.<java.lang.StringBuffer: void setCharAt(int,char)>(v, v);
v = v + 2;
v = "0123456789";
v = v % 10;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
virtualinvoke v.<java.lang.StringBuffer: void setCharAt(int,char)>(v, v);
return;
}
public void setTimeZone(java.util.TimeZone)
{
org.apache.log4j.pattern.CachedDateFormat v;
java.text.DateFormat v;
java.util.TimeZone v;
v := @this: org.apache.log4j.pattern.CachedDateFormat;
v := @parameter: java.util.TimeZone;
v = v.<org.apache.log4j.pattern.CachedDateFormat: java.text.DateFormat formatter>;
virtualinvoke v.<java.text.DateFormat: void setTimeZone(java.util.TimeZone)>(v);
v.<org.apache.log4j.pattern.CachedDateFormat: long previousTime> = -9223372036854775808L;
v.<org.apache.log4j.pattern.CachedDateFormat: long slotBegin> = -9223372036854775808L;
return;
}
public java.util.Date parse(java.lang.String, java.text.ParsePosition)
{
java.util.Date v;
java.text.ParsePosition v;
java.lang.String v;
org.apache.log4j.pattern.CachedDateFormat v;
java.text.DateFormat v;
v := @this: org.apache.log4j.pattern.CachedDateFormat;
v := @parameter: java.lang.String;
v := @parameter: java.text.ParsePosition;
v = v.<org.apache.log4j.pattern.CachedDateFormat: java.text.DateFormat formatter>;
v = virtualinvoke v.<java.text.DateFormat: java.util.Date parse(java.lang.String,java.text.ParsePosition)>(v, v);
return v;
}
public java.text.NumberFormat getNumberFormat()
{
org.apache.log4j.pattern.CachedDateFormat v;
java.text.DateFormat v;
java.text.NumberFormat v;
v := @this: org.apache.log4j.pattern.CachedDateFormat;
v = v.<org.apache.log4j.pattern.CachedDateFormat: java.text.DateFormat formatter>;
v = virtualinvoke v.<java.text.DateFormat: java.text.NumberFormat getNumberFormat()>();
return v;
}
public static int getMaximumCacheValidity(java.lang.String)
{
int v, v;
java.lang.String v;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: int indexOf(int)>(83);
if v < 0 goto label;
v = virtualinvoke v.<java.lang.String: int lastIndexOf(java.lang.String)>("SSS");
if v == v goto label;
return 1;
label:
return 1000;
}
}