Class Utility


  • public abstract class Utility
    extends Object
    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.
    Author:
    Dennis M. Sosnoski
    • Constructor Detail

      • Utility

        public Utility()
    • Method Detail

      • parseInt

        public static int parseInt​(String text)
                            throws JiBXException
        Parse integer value from text. Integer values are parsed with optional leading sign flag, followed by any number of digits.
        Parameters:
        text - text to be parsed
        Returns:
        converted integer value
        Throws:
        JiBXException - on parse error
      • serializeInt

        public static String serializeInt​(int value)
        Serialize int value to text.
        Parameters:
        value - int value to be serialized
        Returns:
        text representation of value
      • ifBoolean

        public static boolean ifBoolean​(String text)
        Check if a text string is a valid boolean representation.
        Parameters:
        text - to check
        Returns:
        true if valid boolean, false if not
      • parseLong

        public static long parseLong​(String text)
                              throws JiBXException
        Parse long value from text. Long values are parsed with optional leading sign flag, followed by any number of digits.
        Parameters:
        text - text to be parsed
        Returns:
        converted long value
        Throws:
        JiBXException - on parse error
      • serializeLong

        public static String serializeLong​(long value)
        Serialize long value to text.
        Parameters:
        value - long value to be serialized
        Returns:
        text representation of value
      • parseYear

        public static long parseYear​(String text)
                              throws JiBXException
        Convert gYear text to Java date. Date values are expected to be in W3C XML Schema standard format as CCYY, with optional leading sign.
        Parameters:
        text - text to be parsed
        Returns:
        start of year date as millisecond value from 1 C.E.
        Throws:
        JiBXException - on parse error
      • parseShort

        public static short parseShort​(String text)
                                throws JiBXException
        Parse short value from text. Short values are parsed with optional leading sign flag, followed by any number of digits.
        Parameters:
        text - text to be parsed
        Returns:
        converted short value
        Throws:
        JiBXException - on parse error
      • serializeShort

        public static String serializeShort​(short value)
        Serialize short value to text.
        Parameters:
        value - short value to be serialized
        Returns:
        text representation of value
      • parseByte

        public static byte parseByte​(String text)
                              throws JiBXException
        Parse byte value from text. Byte values are parsed with optional leading sign flag, followed by any number of digits.
        Parameters:
        text - text to be parsed
        Returns:
        converted byte value
        Throws:
        JiBXException - on parse error
      • serializeByte

        public static String serializeByte​(byte value)
        Serialize byte value to text.
        Parameters:
        value - byte value to be serialized
        Returns:
        text representation of value
      • parseBoolean

        public static boolean parseBoolean​(String text)
                                    throws JiBXException
        Parse boolean value from text. Boolean values are parsed as either text "true" and "false", or "1" and "0" numeric equivalents.
        Parameters:
        text - text to be parsed
        Returns:
        converted boolean value
        Throws:
        JiBXException - on parse error
      • deserializeBoolean

        public static Boolean deserializeBoolean​(String text)
                                          throws JiBXException
        Deserialize boolean value from text. If the text is null this just returns null; otherwise it returns the wrapped parsed value.
        Parameters:
        text - text to be parsed (may be null)
        Returns:
        converted Boolean value
        Throws:
        JiBXException - on parse error
      • serializeBoolean

        public static String serializeBoolean​(boolean value)
        Serialize boolean value to text. This serializes the value using the text representation as "true" or "false".
        Parameters:
        value - boolean value to be serialized
        Returns:
        text representation of value
      • serializeBoolean

        public static String serializeBoolean​(Boolean value)
        Serialize boolean value to text. If the value is null this just returns null; otherwise it serializes the value using serializeBoolean(boolean).
        Parameters:
        value - value to be serialized
        Returns:
        text representation of value
      • parseChar

        public static char parseChar​(String text)
                              throws JiBXException
        Parse char value from text as unsigned 16-bit integer. Char values are parsed with optional leading sign flag, followed by any number of digits.
        Parameters:
        text - text to be parsed
        Returns:
        converted char value
        Throws:
        JiBXException - on parse error
      • serializeChar

        public static String serializeChar​(char value)
        Serialize char value to text as unsigned 16-bit integer.
        Parameters:
        value - char value to be serialized
        Returns:
        text representation of value
      • parseCharString

        public static char parseCharString​(String text)
                                    throws JiBXException
        Parse char value from text as character value. This requires that the string must be of length one.
        Parameters:
        text - text to be parsed
        Returns:
        converted char value
        Throws:
        JiBXException - on parse error
      • deserializeCharString

        public static char deserializeCharString​(String text)
                                          throws JiBXException
        Deserialize char value from text as character value. This requires that the string must be null or of length one.
        Parameters:
        text - text to be parsed (may be null)
        Returns:
        converted char value
        Throws:
        JiBXException - on parse error
      • serializeCharString

        public static String serializeCharString​(char value)
        Serialize char value to text as string of length one.
        Parameters:
        value - char value to be serialized
        Returns:
        text representation of value
      • parseFloat

        public static float parseFloat​(String text)
                                throws JiBXException
        Parse float value from text. This uses the W3C XML Schema format for floats, with the exception that it will accept "+NaN" and "-NaN" as valid formats. This is not in strict compliance with the specification, but is included for interoperability with other Java XML processing.
        Parameters:
        text - text to be parsed
        Returns:
        converted float value
        Throws:
        JiBXException - on parse error
      • serializeFloat

        public static String serializeFloat​(float value)
        Serialize float value to text.
        Parameters:
        value - float value to be serialized
        Returns:
        text representation of value
      • parseDouble

        public static double parseDouble​(String text)
                                  throws JiBXException
        Parse double value from text. This uses the W3C XML Schema format for doubles, with the exception that it will accept "+NaN" and "-NaN" as valid formats. This is not in strict compliance with the specification, but is included for interoperability with other Java XML processing.
        Parameters:
        text - text to be parsed
        Returns:
        converted double value
        Throws:
        JiBXException - on parse error
      • serializeDouble

        public static String serializeDouble​(double value)
        Serialize double value to text.
        Parameters:
        value - double value to be serialized
        Returns:
        text representation of value
      • parseYearMonth

        public static long parseYearMonth​(String text)
                                   throws JiBXException
        Convert gYearMonth text to Java date. Date values are expected to be in W3C XML Schema standard format as CCYY-MM, with optional leading sign.
        Parameters:
        text - text to be parsed
        Returns:
        start of month in year date as millisecond value
        Throws:
        JiBXException - on parse error
      • parseDate

        public static long parseDate​(String text)
                              throws JiBXException
        Convert date text to Java date. Date values are expected to be in W3C XML Schema standard format as CCYY-MM-DD, with optional leading sign and trailing time zone (though the time zone is ignored in this case). 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.
        Parameters:
        text - text to be parsed
        Returns:
        start of day in month and year date as millisecond value
        Throws:
        JiBXException - on parse error
      • deserializeDate

        public static Date deserializeDate​(String text)
                                    throws JiBXException
        Deserialize date from text. Date values are expected to match W3C XML Schema standard format as CCYY-MM-DD, with optional leading sign and trailing time zone (though the time zone is ignored in this case). This method follows standard JiBX deserializer usage requirements by accepting a 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.
        Parameters:
        text - text to be parsed (may be null)
        Returns:
        converted date, or null if passed null input
        Throws:
        JiBXException - on parse error
      • deserializeSqlDate

        public static Date deserializeSqlDate​(String text)
                                       throws JiBXException
        Deserialize SQL date from text. Date values are expected to match W3C XML Schema standard format as CCYY-MM-DD, with optional leading sign and trailing time zone (though the time zone is ignored in this case). This method follows standard JiBX deserializer usage requirements by accepting a null input.
        Parameters:
        text - text to be parsed (may be null)
        Returns:
        converted date, or null if passed null input
        Throws:
        JiBXException - on parse error
      • parseTimeNoOffset

        public static long parseTimeNoOffset​(String text,
                                             int start,
                                             int length)
                                      throws JiBXException
        Parse general time value from text. Time values are expected to be in W3C XML Schema standard format as hh:mm:ss.fff, with optional leading sign and trailing time zone. This method ignores any time zone offset, just converting the value as supplied.
        Parameters:
        text - text to be parsed
        start - offset of first character of time value
        length - number of characters in time value
        Returns:
        converted time as millisecond value
        Throws:
        JiBXException - on parse error
      • parseTime

        public static long parseTime​(String text,
                                     int start,
                                     int length)
                              throws JiBXException
        Parse general time value from text. Time values are expected to be in W3C XML Schema standard format as hh:mm:ss.fff, with optional leading sign and trailing time zone. This method always adjusts the returned value to UTC if a time zone offset is supplied.
        Parameters:
        text - text to be parsed
        start - offset of first character of time value
        length - number of characters in time value
        Returns:
        converted time as millisecond value
        Throws:
        JiBXException - on parse error
      • parseDateTime

        public static long parseDateTime​(String text)
                                  throws JiBXException
        Parse general dateTime value from text. Date values are expected to be in W3C XML Schema standard format as CCYY-MM-DDThh:mm:ss.fff, with optional leading sign and trailing time zone. This method always adjusts the returned value to UTC if a time zone offset is supplied.
        Parameters:
        text - text to be parsed
        Returns:
        converted date as millisecond value
        Throws:
        JiBXException - on parse error
      • deserializeDateTime

        public static Date deserializeDateTime​(String text)
                                        throws JiBXException
        Deserialize date from general dateTime text. Date values are expected to match W3C XML Schema standard format as CCYY-MM-DDThh:mm:ss, with optional leading minus sign and trailing seconds decimal, as necessary. This method follows standard JiBX deserializer usage requirements by accepting a null input.
        Parameters:
        text - text to be parsed (may be null)
        Returns:
        converted date, or null if passed null input
        Throws:
        JiBXException - on parse error
      • deserializeTimestamp

        public static Timestamp deserializeTimestamp​(String text)
                                              throws JiBXException
        Deserialize timestamp from general dateTime text. Timestamp values are represented in the same way as regular dates, but allow more precision in the fractional second value (down to nanoseconds). This method follows standard JiBX deserializer usage requirements by accepting a null input.
        Parameters:
        text - text to be parsed (may be null)
        Returns:
        converted timestamp, or null if passed null input
        Throws:
        JiBXException - on parse error
      • deserializeSqlTime

        public static Time deserializeSqlTime​(String text)
                                       throws JiBXException
        Deserialize time from text. Time values obey the rules of the time portion of a dataTime value. This method follows standard JiBX deserializer usage requirements by accepting a null input.
        Parameters:
        text - text to be parsed (may be null)
        Returns:
        converted time, or null if passed null input
        Throws:
        JiBXException - on parse error
      • formatYearNumber

        protected static void formatYearNumber​(long year,
                                               StringBuffer buff)
        Format year number consistent with W3C XML Schema definitions, using a minimum of four digits padded with zeros if necessary. A leading minus sign is included for years prior to 1 C.E.
        Parameters:
        year - number to be formatted
        buff - text formatting buffer
      • formatTwoDigits

        protected static void formatTwoDigits​(int value,
                                              StringBuffer buff)
        Format a positive number as two digits. This uses an optional leading zero digit for values less than ten.
        Parameters:
        value - number to be formatted (0 to 99)
        buff - text formatting buffer
      • formatYear

        protected static void formatYear​(long value,
                                         StringBuffer buff)
        Format time in milliseconds to year number. The resulting year number format is consistent with W3C XML Schema definitions, using a minimum of four digits padded with zeros if necessary. A leading minus sign is included for years prior to 1 C.E.
        Parameters:
        value - time in milliseconds to be converted (from 1 C.E.)
        buff - text formatting buffer
      • formatYearMonth

        protected static long formatYearMonth​(long value,
                                              StringBuffer buff)
        Format time in milliseconds to year number and month number. The resulting year number format is consistent with W3C XML Schema definitions, using a minimum of four digits for the year and exactly two digits for the month.
        Parameters:
        value - time in milliseconds to be converted (from 1 C.E.)
        buff - text formatting buffer
        Returns:
        number of milliseconds into month
      • formatYearMonthDay

        protected static int formatYearMonthDay​(long value,
                                                StringBuffer buff)
        Format time in milliseconds to year number, month number, and day number. The resulting year number format is consistent with W3C XML Schema definitions, using a minimum of four digits for the year and exactly two digits each for the month and day.
        Parameters:
        value - time in milliseconds to be converted (from 1 C.E.)
        buff - text formatting buffer
        Returns:
        number of milliseconds into day
      • serializeYear

        public static String serializeYear​(long time)
        Serialize time to general gYear text. Date values are formatted in W3C XML Schema standard format as CCYY, with optional leading sign included if necessary.
        Parameters:
        time - time to be converted, as milliseconds from January 1, 1970
        Returns:
        converted gYear text
      • serializeYear

        public static String serializeYear​(Date date)
        Serialize date to general gYear text. Date values are formatted in W3C XML Schema standard format as CCYY, with optional leading sign included if necessary.
        Parameters:
        date - date to be converted
        Returns:
        converted gYear text
      • serializeYearMonth

        public static String serializeYearMonth​(long time)
        Serialize time to general gYearMonth text. Date values are formatted in W3C XML Schema standard format as CCYY-MM, with optional leading sign included if necessary.
        Parameters:
        time - time to be converted, as milliseconds from January 1, 1970
        Returns:
        converted gYearMonth text
      • serializeYearMonth

        public static String serializeYearMonth​(Date date)
        Serialize date to general gYearMonth text. Date values are formatted in W3C XML Schema standard format as CCYY-MM, with optional leading sign included if necessary.
        Parameters:
        date - date to be converted
        Returns:
        converted gYearMonth text
      • serializeDate

        public static String serializeDate​(long time)
        Serialize time to general date text. Date values are formatted in W3C XML Schema standard format as CCYY-MM-DD, with optional leading sign included if necessary.
        Parameters:
        time - time to be converted, as milliseconds from January 1, 1970
        Returns:
        converted date text
      • serializeDate

        public static String serializeDate​(Date date)
        Serialize date to general date text. Date values are formatted in W3C XML Schema standard format as CCYY-MM-DD, with optional leading sign included if necessary. Note that the conversion is based on UTC, which matches the definition of 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).
        Parameters:
        date - date to be converted
        Returns:
        converted date text
      • serializeSqlDate

        public static String serializeSqlDate​(Date date)
        Serialize SQL date to general date text. Date values are formatted in W3C XML Schema standard format as CCYY-MM-DD, with optional leading sign included if necessary. This interprets the date value with respect to the local time zone, as fits the definition of the java.sql.Date type.
        Parameters:
        date - date to be converted
        Returns:
        converted date text
      • serializeExplicitOffset

        public static void serializeExplicitOffset​(int offset,
                                                   StringBuffer buff)
        Serialize time zone offset to buffer. Time zone offset values are always formatted in W3C XML Schema standard format as +/-hh:mm (even if the offset is zero).
        Parameters:
        offset - milliseconds to be subtracted to get UTC from local time
        buff - buffer for appending time text
      • serializeOffset

        public static void serializeOffset​(int offset,
                                           StringBuffer buff)
        Serialize time zone offset to buffer. Time zone offset values are formatted in W3C XML Schema standard format as +/-hh:mm, with 'Z' used if the offset is zero.
        Parameters:
        offset - milliseconds to be subtracted to get UTC from local time
        buff - buffer for appending time text
      • serializeTime

        public static void serializeTime​(int time,
                                         StringBuffer buff)
        Serialize time to general time text in buffer. Time values are formatted in W3C XML Schema standard format as hh:mm:ss, with optional trailing seconds decimal, as necessary. This form uses a supplied buffer to support flexible use, including with dateTime combination values.
        Parameters:
        time - time to be converted, as milliseconds in day
        buff - buffer for appending time text
      • serializeDateTime

        public static String serializeDateTime​(long time,
                                               boolean zone)
        Serialize time to general dateTime text. Date values are formatted in W3C XML Schema standard format as CCYY-MM-DDThh:mm:ss, with optional leading sign and trailing seconds decimal, as necessary.
        Parameters:
        time - time to be converted, as milliseconds from January 1, 1970
        zone - flag for trailing 'Z' to be appended to indicate UTC
        Returns:
        converted dateTime text
      • serializeDateTime

        public static String serializeDateTime​(long time)
        Serialize time to general dateTime text. This method is provided for backward compatibility. It generates the dateTime text without the trailing 'Z' to indicate UTC.
        Parameters:
        time - time to be converted, as milliseconds from January 1, 1970
        Returns:
        converted dateTime text
      • serializeDateTime

        public static String serializeDateTime​(Date date)
        Serialize date to general dateTime text. Date values are formatted in W3C XML Schema standard format as CCYY-MM-DDThh:mm:ssZ, with optional leading sign and trailing seconds decimal, as necessary.
        Parameters:
        date - date to be converted
        Returns:
        converted dateTime text
      • serializeTimestamp

        public static String serializeTimestamp​(Timestamp stamp)
        Serialize timestamp to general dateTime text. Timestamp values are represented in the same way as regular dates, but allow more precision in the fractional second value (down to nanoseconds).
        Parameters:
        stamp - timestamp to be converted
        Returns:
        converted dateTime text
      • serializeSqlTime

        public static String serializeSqlTime​(Time time)
        Serialize time to standard text. Time values are formatted in W3C XML Schema standard format as hh:mm:ss, with optional trailing seconds decimal, as necessary. The standard conversion does not append a time zone indication.
        Parameters:
        time - time to be converted
        Returns:
        converted time text
      • isEqual

        public static boolean isEqual​(Object a,
                                      Object b)
        General object comparison method. Don't know why Sun hasn't seen fit to include this somewhere, but at least it's easy to write (over and over again).
        Parameters:
        a - first object to be compared
        b - second object to be compared
        Returns:
        true if both objects are null, or if a.equals(b); false otherwise
      • enumValue

        public static int enumValue​(String target,
                                    String[] enums,
                                    int[] vals)
                             throws JiBXException
        Find text value in enumeration. This first does a binary search through an array of allowed text matches. If a separate array of corresponding values is supplied, the value at the matched position is returned; otherwise the match index is returned directly.
        Parameters:
        target - text to be found in enumeration
        enums - ordered array of texts included in enumeration
        vals - array of values to be returned for corresponding text match positions (position returned directly if this is null)
        Returns:
        enumeration value for target text
        Throws:
        JiBXException - if target text not found in enumeration
      • parseBase64

        public static byte[] parseBase64​(String text)
                                  throws JiBXException
        Parse base64 data from text. This converts the base64 data into a byte array of the appopriate length. In keeping with the recommendations,
        Parameters:
        text - text to be parsed (may include extra characters)
        Returns:
        byte array of data
        Throws:
        JiBXException - if invalid character in base64 representation
      • deserializeBase64

        public static byte[] deserializeBase64​(String text)
                                        throws JiBXException
        Parse base64 data from text. This converts the base64 data into a byte array of the appopriate length. In keeping with the recommendations,
        Parameters:
        text - text to be parsed (may be null, or include extra characters)
        Returns:
        byte array of data
        Throws:
        JiBXException - if invalid character in base64 representation
      • encodeChunk

        public static void encodeChunk​(int base,
                                       byte[] byts,
                                       StringBuffer buff)
        Encode a chunk of data to base64 encoding. Converts the next three bytes of data into four characters of text representation, using padding at the end of less than three bytes of data remain.
        Parameters:
        base - starting offset within byte array
        byts - byte data array
        buff - buffer for encoded text
      • serializeBase64

        public static String serializeBase64​(byte[] byts)
        Serialize byte array to base64 text. In keeping with the specification, this adds a line break every 76 characters in the encoded representation.
        Parameters:
        byts - byte data array
        Returns:
        base64 encoded text
      • resizeArray

        public static Object resizeArray​(int size,
                                         Object base)
        Resize array of arbitrary type.
        Parameters:
        size - new aray size
        base - array to be resized
        Returns:
        resized array, with all data to minimum of the two sizes copied
      • growArray

        public static Object growArray​(Object base)
        Grow array of arbitrary type. The returned array is double the size of the original array, providing this is at least the defined minimum size.
        Parameters:
        base - array to be grown
        Returns:
        array of twice the size as original array, with all data copied
      • arrayListFactory

        public static List arrayListFactory()
        Factory method to create a java.util.ArrayList as the implementation of a java.util.List.
        Returns:
        new java.util.ArrayList
      • deserializeList

        public static ArrayList deserializeList​(String text,
                                                IListItemDeserializer ideser)
                                         throws JiBXException
        Convert whitespace-separated list of values. This implements the whitespace skipping, calling the supplied item deserializer for handling each individual value.
        Parameters:
        text - value to be converted
        ideser - list item deserializer
        Returns:
        list of deserialized items (null if input null, or if nonrecoverable error)
        Throws:
        JiBXException - if error in deserializing text
      • deserializeTokenList

        public static String[] deserializeTokenList​(String text)
                                             throws JiBXException
        Deserialize a list of whitespace-separated tokens into an array of strings.
        Parameters:
        text - value text
        Returns:
        created class instance
        Throws:
        JiBXException - on error in marshalling
      • serializeTokenList

        public static String serializeTokenList​(String[] tokens)
        Serialize an array of strings into a whitespace-separated token list.
        Parameters:
        tokens - array of strings to be serialized
        Returns:
        list text
      • safeEquals

        public static boolean safeEquals​(Object a,
                                         Object b)
        Safe equals test. This does an equals comparison for objects which may be null.
        Parameters:
        a - Object to compare
        b - Object to compare
        Returns:
        true if both null or a.equals(b), false otherwise
      • ifEqualSubstring

        public static boolean ifEqualSubstring​(String match,
                                               String text,
                                               int offset)
        Check if a substring matches a supplied value.
        Parameters:
        match - comparison text
        text - string to be compared
        offset - starting offset for comparison
        Returns:
        true if substring match, false if not
      • ifInIntegerRange

        public static boolean ifInIntegerRange​(String text,
                                               int digitmax,
                                               String abslimit)
        Check if a text string is a valid integer subtype representation.
        Parameters:
        text - (non-null)
        digitmax - maximum number of digits allowed
        abslimit - largest absolute value allowed (null if no limit)
        Returns:
        true if valid representation, false if not
      • ifByte

        public static boolean ifByte​(String text)
        Check if a text string is a valid byte representation.
        Parameters:
        text - (non-null)
        Returns:
        true if valid byte, false if not
      • ifShort

        public static boolean ifShort​(String text)
        Check if a text string is a valid short representation.
        Parameters:
        text - (non-null)
        Returns:
        true if valid short, false if not
      • ifInt

        public static boolean ifInt​(String text)
        Check if a text string is a valid int representation.
        Parameters:
        text - (non-null)
        Returns:
        true if valid int, false if not
      • ifLong

        public static boolean ifLong​(String text)
        Check if a text string is a valid long representation.
        Parameters:
        text - (non-null)
        Returns:
        true if valid long, false if not
      • ifInteger

        public static boolean ifInteger​(String text)
        Check if a text string is a valid integer representation.
        Parameters:
        text - (non-null)
        Returns:
        true if valid integer, false if not
      • ifDigits

        public static boolean ifDigits​(String text,
                                       int offset,
                                       int limit)
        Check if a portion of a text string consists of decimal digits.
        Parameters:
        text - String to scan
        offset - starting offset
        limit - ending offset plus one (false return if the text length is less than this value)
        Returns:
        true if digits, false if not
      • ifDecimal

        public static boolean ifDecimal​(String text)
        Check if a text string is a valid decimal representation.
        Parameters:
        text - (non-null)
        Returns:
        true if valid decimal, false if not
      • ifFixedDigits

        public static boolean ifFixedDigits​(String text,
                                            int offset,
                                            String bound)
        Check if a portion of a text string is a bounded string of decimal digits. This is used for checking fixed-length decimal fields with a maximum value.
        Parameters:
        text - String to check
        offset - Offset
        bound - Bound
        Returns:
        true if bounded decimal, false if not
      • ifZoneSuffix

        public static boolean ifZoneSuffix​(String text,
                                           int offset)
        Check if a text string ends with a valid zone suffix. This accepts an empty suffix, the single letter 'Z', or an offset of +/-HH:MM.
        Parameters:
        text - String to scan
        offset - Offset
        Returns:
        true if valid suffix, false if not
      • ifDate

        public static boolean ifDate​(String text)
        Check if a text string follows the schema date format. This does not assure that the text string is actually a valid date representation, since it doesn't fully check the value ranges (such as the day number range for a particular month).
        Parameters:
        text - (non-null)
        Returns:
        true if date format, false if not
      • ifTimeSuffix

        public static boolean ifTimeSuffix​(String text,
                                           int offset)
        Check if a text string ends with a valid time suffix. This matches the format HH:MM:SS with optional training fractional seconds and optional time zone.
        Parameters:
        text - String to check
        offset - Offset
        Returns:
        true if valid suffix, false if not
      • ifDateTime

        public static boolean ifDateTime​(String text)
        Check if a text string follows the schema dateTime format. This does not assure that the text string is actually a valid dateTime representation, since it doesn't fully check the value ranges (such as the day number range for a particular month).
        Parameters:
        text - (non-null)
        Returns:
        true if date format, false if not
      • ifTime

        public static boolean ifTime​(String text)
        Check if a text string follows the schema dateTime format. This does not assure that the text string is actually a valid dateTime representation, since it doesn't fully check the value ranges (such as the day number range for a particular month).
        Parameters:
        text - (non-null)
        Returns:
        true if date format, false if not