public abstract class Utility
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
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.
|
static java.lang.String[] |
EMPTY_STRING_ARRAY
Empty array of strings.
|
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) . |
(package private) static int[] |
MONTHS_LEAP
Day number for start of month in non-leap year.
|
(package 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.
|
(package private) static long |
TIME_BASE
Millisecond value of base time for internal representation.
|
Constructor and Description |
---|
Utility() |
Modifier and Type | Method and Description |
---|---|
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 |
ifEqualSubstring(java.lang.String match,
java.lang.String text,
int offset)
Check if a substring matches a supplied value.
|
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.
|
(package 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 |
parseTimeNoOffset(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 void |
serializeExplicitOffset(int offset,
java.lang.StringBuffer buff)
Serialize time zone offset to buffer.
|
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 void |
serializeOffset(int offset,
java.lang.StringBuffer buff)
Serialize time zone offset to buffer.
|
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.
|
public static final java.lang.String[] EMPTY_STRING_ARRAY
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
static final long TIME_BASE
static final int[] MONTHS_NONLEAP
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
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 parsedJiBXException
- on parse errorpublic static int parseInt(java.lang.String text) throws JiBXException
text
- text to be parsedJiBXException
- on parse errorpublic static java.lang.String serializeInt(int value)
value
- int value to be serializedpublic 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 parsedJiBXException
- on parse errorpublic static java.lang.String serializeLong(long value)
value
- long value to be serializedpublic static long parseYear(java.lang.String text) throws JiBXException
text
- text to be parsedJiBXException
- on parse errorpublic static short parseShort(java.lang.String text) throws JiBXException
text
- text to be parsedJiBXException
- on parse errorpublic static java.lang.String serializeShort(short value)
value
- short value to be serializedpublic static byte parseByte(java.lang.String text) throws JiBXException
text
- text to be parsedJiBXException
- on parse errorpublic static java.lang.String serializeByte(byte value)
value
- byte value to be serializedpublic static boolean parseBoolean(java.lang.String text) throws JiBXException
text
- text to be parsedJiBXException
- 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 serializedpublic 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 serializedpublic static char parseChar(java.lang.String text) throws JiBXException
text
- text to be parsedJiBXException
- on parse errorpublic static java.lang.String serializeChar(char value)
value
- char value to be serializedpublic static char parseCharString(java.lang.String text) throws JiBXException
text
- text to be parsedJiBXException
- 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 serializedpublic static float parseFloat(java.lang.String text) throws JiBXException
text
- text to be parsedJiBXException
- on parse errorpublic static java.lang.String serializeFloat(float value)
value
- float value to be serializedpublic static double parseDouble(java.lang.String text) throws JiBXException
text
- text to be parsedJiBXException
- on parse errorpublic static java.lang.String serializeDouble(double value)
value
- double value to be serializedpublic static long parseYearMonth(java.lang.String text) throws JiBXException
text
- text to be parsedJiBXException
- 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 parsedJiBXException
- 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
inputJiBXException
- 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
inputJiBXException
- on parse errorpublic static long parseTimeNoOffset(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 valueJiBXException
- 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 valueJiBXException
- on parse errorpublic static long parseDateTime(java.lang.String text) throws JiBXException
text
- text to be parsedJiBXException
- 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
inputJiBXException
- 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
inputJiBXException
- 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
inputJiBXException
- 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 bufferprotected static int formatYearMonthDay(long value, java.lang.StringBuffer buff)
value
- time in milliseconds to be converted (from 1 C.E.)buff
- text formatting bufferpublic static java.lang.String serializeYear(long time)
time
- time to be converted, as milliseconds from January 1, 1970public static java.lang.String serializeYear(java.util.Date date)
date
- date to be convertedpublic static java.lang.String serializeYearMonth(long time)
time
- time to be converted, as milliseconds from January 1, 1970public static java.lang.String serializeYearMonth(java.util.Date date)
date
- date to be convertedpublic static java.lang.String serializeDate(long time)
time
- time to be converted, as milliseconds from January 1, 1970public 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 convertedpublic static java.lang.String serializeSqlDate(java.sql.Date date)
java.sql.Date
type.date
- date to be convertedpublic static void serializeExplicitOffset(int offset, java.lang.StringBuffer buff)
offset
- milliseconds to be subtracted to get UTC from local timebuff
- buffer for appending time textpublic static void serializeOffset(int offset, java.lang.StringBuffer buff)
offset
- milliseconds to be subtracted to get UTC from local timebuff
- buffer for appending time textpublic 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 UTCpublic static java.lang.String serializeDateTime(long time)
time
- time to be converted, as milliseconds from January 1, 1970public static java.lang.String serializeDateTime(java.util.Date date)
date
- date to be convertedpublic static java.lang.String serializeTimestamp(java.sql.Timestamp stamp)
stamp
- timestamp to be convertedpublic static java.lang.String serializeSqlTime(java.sql.Time time)
time
- time to be convertedpublic static boolean isEqual(java.lang.Object a, java.lang.Object b)
a
- first object to be comparedb
- second object to be comparedtrue
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 arraypublic 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 arraypublic static java.lang.Object resizeArray(int size, java.lang.Object base)
size
- new aray sizebase
- array to be resizedpublic static java.lang.Object growArray(java.lang.Object base)
base
- array to be grownpublic 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 deserializernull
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 textJiBXException
- on error in marshallingpublic static java.lang.String serializeTokenList(java.lang.String[] tokens)
tokens
- array of strings to be serializedpublic 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 ifEqualSubstring(java.lang.String match, java.lang.String text, int offset)
match
- comparison texttext
- string to be comparedoffset
- starting offset for comparisontrue
if substring match, false
if notpublic 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