|
||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jibx.runtime.Utility
public abstract class Utility
Utility class supplying static methods. Date serialization is based on the algorithms published by Peter Baum (http://www.capecod.net/~pbaum). All date handling is done according to the W3C Schema specification, which uses a proleptic Gregorian calendar with no year 0. Note that this differs from the Java date handling, which uses a discontinuous Gregorian calendar.
Field Summary | |
---|---|
private static java.util.Date |
BEGINNING_OF_TIME
Date for setting change to Gregorian calendar. |
private static long[] |
BIAS_MONTHMS
Millisecond count prior to start of month in March 1-biased year. |
private static long |
LMSPERDAY
Number of milliseconds in a day as a long. |
static int |
MINIMUM_GROWN_ARRAY_SIZE
Minimum size for array returned by growArray(java.lang.Object) . |
private static int[] |
MONTHS_LEAP
Day number for start of month in non-leap year. |
private static int[] |
MONTHS_NONLEAP
Day number for start of month in non-leap year. |
private static long |
MSPERAVGYEAR
Average number of milliseconds in a year within century. |
private static long |
MSPERCENTURY
Number of milliseconds in a normal century. |
private static int |
MSPERDAY
Number of milliseconds in a day. |
private static int |
MSPERHOUR
Number of milliseconds in an hour. |
private static int |
MSPERMINUTE
Number of milliseconds in a minute. |
private static long |
MSPERYEAR
Number of milliseconds in a (non-leap) year. |
private static char |
PAD_CHAR
Pad character for base64 encoding. |
private static char[] |
s_base64Chars
Characters used in base64 encoding. |
private static byte[] |
s_base64Values
Values corresponding to characters used in bas64 encoding. |
private static long |
TIME_BASE
Millisecond value of base time for internal representation. |
Constructor Summary | |
---|---|
Utility()
|
Method Summary | |
---|---|
static java.util.List |
arrayListFactory()
Factory method to create a java.util.ArrayList as the
implementation of a java.util.List . |
private static int |
decodeChunk(int base,
char[] chrs,
int fill,
byte[] byts)
Decode a chunk of data from base64 encoding. |
static byte[] |
deserializeBase64(java.lang.String text)
Parse base64 data from text. |
static java.lang.Boolean |
deserializeBoolean(java.lang.String text)
Deserialize boolean value from text. |
static char |
deserializeCharString(java.lang.String text)
Deserialize char value from text as character value. |
static java.util.Date |
deserializeDate(java.lang.String text)
Deserialize date from text. |
static java.util.Date |
deserializeDateTime(java.lang.String text)
Deserialize date from general dateTime text. |
static java.util.ArrayList |
deserializeList(java.lang.String text,
IListItemDeserializer ideser)
Convert whitespace-separated list of values. |
static java.sql.Date |
deserializeSqlDate(java.lang.String text)
Deserialize SQL date from text. |
static java.sql.Time |
deserializeSqlTime(java.lang.String text)
Deserialize time from text. |
static java.sql.Timestamp |
deserializeTimestamp(java.lang.String text)
Deserialize timestamp from general dateTime text. |
static java.lang.String[] |
deserializeTokenList(java.lang.String text)
Deserialize a list of whitespace-separated tokens into an array of strings. |
static void |
encodeChunk(int base,
byte[] byts,
java.lang.StringBuffer buff)
Encode a chunk of data to base64 encoding. |
static int |
enumValue(java.lang.String target,
java.lang.String[] enums,
int[] vals)
Find text value in enumeration. |
protected static void |
formatTwoDigits(int value,
java.lang.StringBuffer buff)
Format a positive number as two digits. |
protected static void |
formatYear(long value,
java.lang.StringBuffer buff)
Format time in milliseconds to year number. |
protected static long |
formatYearMonth(long value,
java.lang.StringBuffer buff)
Format time in milliseconds to year number and month number. |
protected static int |
formatYearMonthDay(long value,
java.lang.StringBuffer buff)
Format time in milliseconds to year number, month number, and day number. |
protected static void |
formatYearNumber(long year,
java.lang.StringBuffer buff)
Format year number consistent with W3C XML Schema definitions, using a minimum of four digits padded with zeros if necessary. |
static java.lang.Object |
growArray(java.lang.Object base)
Grow array of arbitrary type. |
static boolean |
ifBoolean(java.lang.String text)
Check if a text string is a valid boolean representation. |
static boolean |
ifByte(java.lang.String text)
Check if a text string is a valid byte representation. |
static boolean |
ifDate(java.lang.String text)
Check if a text string follows the schema date format. |
static boolean |
ifDateTime(java.lang.String text)
Check if a text string follows the schema dateTime format. |
static boolean |
ifDecimal(java.lang.String text)
Check if a text string is a valid decimal representation. |
static boolean |
ifDigits(java.lang.String text,
int offset,
int limit)
Check if a portion of a text string consists of decimal digits. |
static boolean |
ifFixedDigits(java.lang.String text,
int offset,
java.lang.String bound)
Check if a portion of a text string is a bounded string of decimal digits. |
static boolean |
ifInIntegerRange(java.lang.String text,
int digitmax,
java.lang.String abslimit)
Check if a text string is a valid integer subtype representation. |
static boolean |
ifInt(java.lang.String text)
Check if a text string is a valid int representation. |
static boolean |
ifInteger(java.lang.String text)
Check if a text string is a valid integer representation. |
static boolean |
ifLong(java.lang.String text)
Check if a text string is a valid long representation. |
static boolean |
ifShort(java.lang.String text)
Check if a text string is a valid short representation. |
static boolean |
ifTime(java.lang.String text)
Check if a text string follows the schema dateTime format. |
static boolean |
ifTimeSuffix(java.lang.String text,
int offset)
Check if a text string ends with a valid time suffix. |
static boolean |
ifZoneSuffix(java.lang.String text,
int offset)
Check if a text string ends with a valid zone suffix. |
static boolean |
isEqual(java.lang.Object a,
java.lang.Object b)
General object comparison method. |
static byte[] |
parseBase64(java.lang.String text)
Parse base64 data from text. |
static boolean |
parseBoolean(java.lang.String text)
Parse boolean value from text. |
static byte |
parseByte(java.lang.String text)
Parse byte value from text. |
static char |
parseChar(java.lang.String text)
Parse char value from text as unsigned 16-bit integer. |
static char |
parseCharString(java.lang.String text)
Parse char value from text as character value. |
static long |
parseDate(java.lang.String text)
Convert date text to Java date. |
static long |
parseDateTime(java.lang.String text)
Parse general dateTime value from text. |
private static int |
parseDigits(java.lang.String text,
int offset,
int length)
Parse digits in text as integer value. |
static double |
parseDouble(java.lang.String text)
Parse double value from text. |
static float |
parseFloat(java.lang.String text)
Parse float value from text. |
static int |
parseInt(java.lang.String text)
Parse integer value from text. |
static long |
parseLong(java.lang.String text)
Parse long value from text. |
static short |
parseShort(java.lang.String text)
Parse short value from text. |
static long |
parseTime(java.lang.String text,
int start,
int length)
Parse general time value from text. |
static long |
parseYear(java.lang.String text)
Convert gYear text to Java date. |
static long |
parseYearMonth(java.lang.String text)
Convert gYearMonth text to Java date. |
static java.lang.Object |
resizeArray(int size,
java.lang.Object base)
Resize array of arbitrary type. |
static boolean |
safeEquals(java.lang.Object a,
java.lang.Object b)
Safe equals test. |
static java.lang.String |
serializeBase64(byte[] byts)
Serialize byte array to base64 text. |
static java.lang.String |
serializeBoolean(boolean value)
Serialize boolean value to text. |
static java.lang.String |
serializeBoolean(java.lang.Boolean value)
Serialize boolean value to text. |
static java.lang.String |
serializeByte(byte value)
Serialize byte value to text. |
static java.lang.String |
serializeChar(char value)
Serialize char value to text as unsigned 16-bit integer. |
static java.lang.String |
serializeCharString(char value)
Serialize char value to text as string of length one. |
static java.lang.String |
serializeDate(java.util.Date date)
Serialize date to general date text. |
static java.lang.String |
serializeDate(long time)
Serialize time to general date text. |
static java.lang.String |
serializeDateTime(java.util.Date date)
Serialize date to general dateTime text. |
static java.lang.String |
serializeDateTime(long time)
Serialize time to general dateTime text. |
static java.lang.String |
serializeDateTime(long time,
boolean zone)
Serialize time to general dateTime text. |
static java.lang.String |
serializeDouble(double value)
Serialize double value to text. |
static java.lang.String |
serializeFloat(float value)
Serialize float value to text. |
static java.lang.String |
serializeInt(int value)
Serialize int value to text. |
static java.lang.String |
serializeLong(long value)
Serialize long value to text. |
static java.lang.String |
serializeShort(short value)
Serialize short value to text. |
static java.lang.String |
serializeSqlDate(java.sql.Date date)
Serialize SQL date to general date text. |
static java.lang.String |
serializeSqlTime(java.sql.Time time)
Serialize time to standard text. |
static void |
serializeTime(int time,
java.lang.StringBuffer buff)
Serialize time to general time text in buffer. |
static java.lang.String |
serializeTimestamp(java.sql.Timestamp stamp)
Serialize timestamp to general dateTime text. |
static java.lang.String |
serializeTokenList(java.lang.String[] tokens)
Serialize an array of strings into a whitespace-separated token list. |
static java.lang.String |
serializeYear(java.util.Date date)
Serialize date to general gYear text. |
static java.lang.String |
serializeYear(long time)
Serialize time to general gYear text. |
static java.lang.String |
serializeYearMonth(java.util.Date date)
Serialize date to general gYearMonth text. |
static java.lang.String |
serializeYearMonth(long time)
Serialize time to general gYearMonth text. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int MINIMUM_GROWN_ARRAY_SIZE
growArray(java.lang.Object)
.
private static final int MSPERMINUTE
private static final int MSPERHOUR
private static final int MSPERDAY
private static final long LMSPERDAY
private static final long MSPERYEAR
private static final long MSPERAVGYEAR
private static final long MSPERCENTURY
private static final long TIME_BASE
private static final int[] MONTHS_NONLEAP
private static final int[] MONTHS_LEAP
private static final long[] BIAS_MONTHMS
private static java.util.Date BEGINNING_OF_TIME
private static final char PAD_CHAR
private static final char[] s_base64Chars
private static final byte[] s_base64Values
Constructor Detail |
---|
public Utility()
Method Detail |
---|
private static int parseDigits(java.lang.String text, int offset, int length) throws JiBXException
text
- text to be parsedoffset
- starting offset in textlength
- number of digits to be parsed
JiBXException
- on parse errorpublic static int parseInt(java.lang.String text) throws JiBXException
text
- text to be parsed
JiBXException
- on parse errorpublic static java.lang.String serializeInt(int value)
value
- int value to be serialized
public static boolean ifBoolean(java.lang.String text)
text
-
true
if valid boolean, false
if notpublic static long parseLong(java.lang.String text) throws JiBXException
text
- text to be parsed
JiBXException
- on parse errorpublic static java.lang.String serializeLong(long value)
value
- long value to be serialized
public static long parseYear(java.lang.String text) throws JiBXException
text
- text to be parsed
JiBXException
- on parse errorpublic static short parseShort(java.lang.String text) throws JiBXException
text
- text to be parsed
JiBXException
- on parse errorpublic static java.lang.String serializeShort(short value)
value
- short value to be serialized
public static byte parseByte(java.lang.String text) throws JiBXException
text
- text to be parsed
JiBXException
- on parse errorpublic static java.lang.String serializeByte(byte value)
value
- byte value to be serialized
public static boolean parseBoolean(java.lang.String text) throws JiBXException
text
- text to be parsed
JiBXException
- on parse errorpublic static java.lang.Boolean deserializeBoolean(java.lang.String text) throws JiBXException
null
this just returns null
; otherwise it returns the wrapped
parsed value.
text
- text to be parsed (may be null
)
JiBXException
- on parse errorpublic static java.lang.String serializeBoolean(boolean value)
value
- boolean value to be serialized
public static java.lang.String serializeBoolean(java.lang.Boolean value)
null
this
just returns null
; otherwise it serializes the value using
serializeBoolean(boolean)
.
value
- value to be serialized
public static char parseChar(java.lang.String text) throws JiBXException
text
- text to be parsed
JiBXException
- on parse errorpublic static java.lang.String serializeChar(char value)
value
- char value to be serialized
public static char parseCharString(java.lang.String text) throws JiBXException
text
- text to be parsed
JiBXException
- on parse errorpublic static char deserializeCharString(java.lang.String text) throws JiBXException
text
- text to be parsed (may be null
)
JiBXException
- on parse errorpublic static java.lang.String serializeCharString(char value)
value
- char value to be serialized
public static float parseFloat(java.lang.String text) throws JiBXException
text
- text to be parsed
JiBXException
- on parse errorpublic static java.lang.String serializeFloat(float value)
value
- float value to be serialized
public static double parseDouble(java.lang.String text) throws JiBXException
text
- text to be parsed
JiBXException
- on parse errorpublic static java.lang.String serializeDouble(double value)
value
- double value to be serialized
public static long parseYearMonth(java.lang.String text) throws JiBXException
text
- text to be parsed
JiBXException
- on parse errorpublic static long parseDate(java.lang.String text) throws JiBXException
java.util.Date
but will typically not be the
expected value if you're using a java.util.Calendar
on the
result. In this case you probably want to instead use deserializeSqlDate(String)
, which does adjust the value to match
the local time zone.
text
- text to be parsed
JiBXException
- on parse errorpublic static java.util.Date deserializeDate(java.lang.String text) throws JiBXException
null
input.
Note that the returned value is based on UTC, which matches the
definition of java.util.Date
but will typically not be the
expected value if you're using a java.util.Calendar
on the
result. In this case you probably want to instead use deserializeSqlDate(String)
, which does adjust the value to match
the local time zone.
text
- text to be parsed (may be null
)
null
if passed null
input
JiBXException
- on parse errorpublic static java.sql.Date deserializeSqlDate(java.lang.String text) throws JiBXException
null
input.
text
- text to be parsed (may be null
)
null
if passed null
input
JiBXException
- on parse errorpublic static long parseTime(java.lang.String text, int start, int length) throws JiBXException
text
- text to be parsedstart
- offset of first character of time valuelength
- number of characters in time value
JiBXException
- on parse errorpublic static long parseDateTime(java.lang.String text) throws JiBXException
text
- text to be parsed
JiBXException
- on parse errorpublic static java.util.Date deserializeDateTime(java.lang.String text) throws JiBXException
null
input.
text
- text to be parsed (may be null
)
null
if passed null
input
JiBXException
- on parse errorpublic static java.sql.Timestamp deserializeTimestamp(java.lang.String text) throws JiBXException
null
input.
text
- text to be parsed (may be null
)
null
if passed
null
input
JiBXException
- on parse errorpublic static java.sql.Time deserializeSqlTime(java.lang.String text) throws JiBXException
null
input.
text
- text to be parsed (may be null
)
null
if passed null
input
JiBXException
- on parse errorprotected static void formatYearNumber(long year, java.lang.StringBuffer buff)
year
- number to be formattedbuff
- text formatting bufferprotected static void formatTwoDigits(int value, java.lang.StringBuffer buff)
value
- number to be formatted (0
to 99
)buff
- text formatting bufferprotected static void formatYear(long value, java.lang.StringBuffer buff)
value
- time in milliseconds to be converted (from 1 C.E.)buff
- text formatting bufferprotected static long formatYearMonth(long value, java.lang.StringBuffer buff)
value
- time in milliseconds to be converted (from 1 C.E.)buff
- text formatting buffer
protected static int formatYearMonthDay(long value, java.lang.StringBuffer buff)
value
- time in milliseconds to be converted (from 1 C.E.)buff
- text formatting buffer
public static java.lang.String serializeYear(long time)
time
- time to be converted, as milliseconds from January 1, 1970
public static java.lang.String serializeYear(java.util.Date date)
date
- date to be converted
public static java.lang.String serializeYearMonth(long time)
time
- time to be converted, as milliseconds from January 1, 1970
public static java.lang.String serializeYearMonth(java.util.Date date)
date
- date to be converted
public static java.lang.String serializeDate(long time)
time
- time to be converted, as milliseconds from January 1, 1970
public static java.lang.String serializeDate(java.util.Date date)
java.util.Date
but may not match the value as
serialized using java.util.Calendar
(which assumes values
are in the local time zone). To work with values in the local time zone
you want to instead use serializeSqlDate(java.sql.Date)
.
date
- date to be converted
public static java.lang.String serializeSqlDate(java.sql.Date date)
java.sql.Date
type.
date
- date to be converted
public static void serializeTime(int time, java.lang.StringBuffer buff)
time
- time to be converted, as milliseconds in daybuff
- buffer for appending time textpublic static java.lang.String serializeDateTime(long time, boolean zone)
time
- time to be converted, as milliseconds from January 1, 1970zone
- flag for trailing 'Z' to be appended to indicate UTC
public static java.lang.String serializeDateTime(long time)
time
- time to be converted, as milliseconds from January 1, 1970
public static java.lang.String serializeDateTime(java.util.Date date)
date
- date to be converted
public static java.lang.String serializeTimestamp(java.sql.Timestamp stamp)
stamp
- timestamp to be converted
public static java.lang.String serializeSqlTime(java.sql.Time time)
time
- time to be converted
public static boolean isEqual(java.lang.Object a, java.lang.Object b)
a
- first object to be comparedb
- second object to be compared
true
if both objects are null
, or if
a.equals(b)
; false
otherwisepublic static int enumValue(java.lang.String target, java.lang.String[] enums, int[] vals) throws JiBXException
target
- text to be found in enumerationenums
- ordered array of texts included in enumerationvals
- array of values to be returned for corresponding text match
positions (position returned directly if this is null
)
JiBXException
- if target text not found in enumerationprivate static int decodeChunk(int base, char[] chrs, int fill, byte[] byts)
base
- starting offset within base64 character arraychrs
- character array for base64 text representationfill
- starting offset within byte data arraybyts
- byte data array
public static byte[] parseBase64(java.lang.String text) throws JiBXException
text
- text to be parsed (may include extra characters)
JiBXException
- if invalid character in base64 representationpublic static byte[] deserializeBase64(java.lang.String text) throws JiBXException
text
- text to be parsed (may be null, or include extra characters)
JiBXException
- if invalid character in base64 representationpublic static void encodeChunk(int base, byte[] byts, java.lang.StringBuffer buff)
base
- starting offset within byte arraybyts
- byte data arraybuff
- buffer for encoded textpublic static java.lang.String serializeBase64(byte[] byts)
byts
- byte data array
public static java.lang.Object resizeArray(int size, java.lang.Object base)
size
- new aray sizebase
- array to be resized
public static java.lang.Object growArray(java.lang.Object base)
base
- array to be grown
public static java.util.List arrayListFactory()
java.util.ArrayList
as the
implementation of a java.util.List
.
java.util.ArrayList
public static java.util.ArrayList deserializeList(java.lang.String text, IListItemDeserializer ideser) throws JiBXException
text
- value to be convertedideser
- list item deserializer
null
if input
null
, or if nonrecoverable error)
JiBXException
- if error in deserializing textpublic static java.lang.String[] deserializeTokenList(java.lang.String text) throws JiBXException
text
- value text
JiBXException
- on error in marshallingpublic static java.lang.String serializeTokenList(java.lang.String[] tokens)
tokens
- array of strings to be serialized
public static boolean safeEquals(java.lang.Object a, java.lang.Object b)
null
.
a
- b
-
true
if both null
or a.equals(b),
false
otherwisepublic static boolean ifInIntegerRange(java.lang.String text, int digitmax, java.lang.String abslimit)
text
- (non-null
)digitmax
- maximum number of digits allowedabslimit
- largest absolute value allowed (null
if no
limit)
true
if valid representation, false
if
notpublic static boolean ifByte(java.lang.String text)
text
- (non-null
)
true
if valid byte, false
if notpublic static boolean ifShort(java.lang.String text)
text
- (non-null
)
true
if valid short, false
if notpublic static boolean ifInt(java.lang.String text)
text
- (non-null
)
true
if valid int, false
if notpublic static boolean ifLong(java.lang.String text)
text
- (non-null
)
true
if valid long, false
if notpublic static boolean ifInteger(java.lang.String text)
text
- (non-null
)
true
if valid integer, false
if notpublic static boolean ifDigits(java.lang.String text, int offset, int limit)
text
- offset
- starting offsetlimit
- ending offset plus one (false
return if the
text length is less than this value)
true
if digits, false
if notpublic static boolean ifDecimal(java.lang.String text)
text
- (non-null
)
true
if valid decimal, false
if notpublic static boolean ifFixedDigits(java.lang.String text, int offset, java.lang.String bound)
text
- offset
- bound
-
true
if bounded decimal, false
if notpublic static boolean ifZoneSuffix(java.lang.String text, int offset)
text
- offset
-
true
if valid suffix, false
if notpublic static boolean ifDate(java.lang.String text)
text
- (non-null
)
true
if date format, false
if notpublic static boolean ifTimeSuffix(java.lang.String text, int offset)
text
- offset
-
true
if valid suffix, false
if notpublic static boolean ifDateTime(java.lang.String text)
text
- (non-null
)
true
if date format, false
if notpublic static boolean ifTime(java.lang.String text)
text
- (non-null
)
true
if date format, false
if not
|
||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |