CoherenceTM v3.3
Copyright© 2000-2007 by Oracle Corporation

com.tangosol.util
Class Base

java.lang.Object
  extended by com.tangosol.util.Base
Direct Known Subclasses:
ExternalizableHelper.SimpleXmlBeanClassCache

public abstract class Base
extends Object

Base class for providing standard functionality.

Author:
cp 2000.08.02

Nested Class Summary
static class Base.StackFrame
          A class that provides "stack frame" information from a line of a stack trace.
 
Field Summary
static int POWER_0
          Integer constant representing an exponent of zero.
static int POWER_G
          Integer constant representing an exponent of 30.
static int POWER_K
          Integer constant representing an exponent of 10.
static int POWER_M
          Integer constant representing an exponent of 20.
static int POWER_T
          Integer constant representing an exponent of 40.
static int UNIT_D
          Integer constant representing a unit of days.
static int UNIT_H
          Integer constant representing a unit of hours.
static int UNIT_M
          Integer constant representing a unit of minutes.
static int UNIT_MS
          Integer constant representing a unit of milliseconds.
static int UNIT_NS
          Integer constant representing a unit of nanoseconds.
static int UNIT_S
          Integer constant representing a unit of seconds.
static int UNIT_US
          Integer constant representing a unit of microseconds.
 
Constructor Summary
Base()
           
 
Method Summary
static RuntimeException azzert()
          Definite assertion failure.
static void azzert(boolean f)
          Test an assertion.
static void azzert(boolean f, String s)
          Test an assertion, and print the specified message if the assertion fails.
static void azzertFailed(String sMsg)
          Throw an assertion exception.
static String breakLines(String sText, int nWidth, String sIndent)
          Breaks the specified string into a multi-line string.
static String breakLines(String sText, int nWidth, String sIndent, boolean fFirstLine)
          Breaks the specified string into a multi-line string.
static int decimalValue(char ch)
          Returns the integer value of a decimal digit.
static String dup(char ch, int cch)
          Create a String of the specified length containing the specified character.
static String dup(String s, int c)
          Create a String which is a duplicate of the specified number of the passed String.
static RuntimeException ensureRuntimeException(Throwable e)
          Convert the passed exception to a RuntimeException if necessary.
static RuntimeException ensureRuntimeException(Throwable e, String s)
          Convert the passed exception to a RuntimeException if necessary.
static boolean equals(Object o1, Object o2)
          Compare two references for equality.
static boolean equalsDeep(Object o1, Object o2)
          Deeply compare two references for equality.
static void err()
          Prints a blank line to the trace Writer.
static void err(Class clz)
          Prints the passed class information to the trace Writer.
static void err(Object o)
          Prints the passed Object to the trace Writer.
static void err(String s)
          Prints the passed String value to the trace Writer.
static void err(Throwable e)
          Prints the passed exception information to the trace Writer.
static int escape(char ch, char[] ach, int of)
          Format a char to a printable escape if necessary, putting the result into the passed array.
static String formatDateTime(long ldt)
          Format a long value into a human readable date/time string.
static Base.StackFrame getCallerStackFrame()
          Get the StackFrame information for the caller of the current method.
static Object getCommonMonitor(int i)
          Return the common monitor associated with the specified integer value.
static Object getCommonMonitor(long l)
          Return the common monitor associated with the specified long value.
static ClassLoader getContextClassLoader()
          Try to determine the ClassLoader that supports the current context.
static ClassLoader getContextClassLoader(Object o)
          Try to determine the ClassLoader that supports the current context.
static PrintWriter getErr()
          Obtains the current writer used for tracing.
static PrintWriter getLog()
          Obtains the current writer used for logging.
static int getMaxDecDigits(int n)
          Calculate the number of decimal digits needed to display the passed value.
static int getMaxHexDigits(int n)
          Calculate the number of hex digits needed to display the passed value.
static Throwable getOriginalException(RuntimeException e)
          Unwind the wrapper (runtime) exception to extract the original
static PrintWriter getOut()
          Obtains the current writer used for printing.
static Random getRandom()
          Obtain a Random object that can be used to get random values.
static Binary getRandomBinary(int cbMin, int cbMax)
          Generates a random-length Binary within the length bounds provided whose contents are random bytes.
static String getRandomString(int cchMin, int cchMax, boolean fAscii)
          Generates a random-length String within the length bounds provided.
static long getSafeTimeMillis()
          Returns a "safe" current time in milliseconds.
static Base.StackFrame getStackFrame()
          Get the StackFrame information for the current method.
static Base.StackFrame[] getStackFrames()
          Iterate the StackFrame information for all callers, going from the inside outwards, and starting with the caller of this method.
static String getStackTrace()
          Build a stack trace for the current thread.
static String getStackTrace(Throwable e)
          Build a stack trace for the passed exception that does not include the exception description itself.
static int hexValue(char ch)
          Returns the integer value of a hexidecimal digit.
static String indentString(String sText, String sIndent)
          Indent the passed multi-line string.
static String indentString(String sText, String sIndent, boolean fFirstLine)
          Textually indent the passed multi-line string.
static boolean isDecimal(char ch)
          Returns true if the passed character is a decimal digit.
static boolean isHex(char ch)
          Returns true if the passed character is a hexidecimal digit.
static boolean isLogEcho()
          Determine if the log is echoed to the console.
static boolean isOctal(char ch)
          Returns true if the passed character is an octal digit.
static void log()
          Prints a blank line to the log.
static void log(Class clz)
          Prints the passed class information to the log.
static void log(Object o)
          Prints the passed Object to the log.
static void log(String s)
          Prints the passed String value to the log.
static void log(Throwable e)
          Prints the passed exception information to the log.
static Integer makeInteger(int n)
          Factory method to produce Integer objects with an optimization that uses cached Integer objects for all relatively-low numbers.
static Long makeLong(long n)
          Factory method to produce Long objects with an optimization that uses cached Long objects for all relatively-low numbers.
static Thread makeThread(ThreadGroup group, Runnable runnable, String sName)
          Create a Thread with the specified group, runnable, and name, using the configured ThreadFactory, as specified by the tangosol.coherence.threadfactory system property.
static int octalValue(char ch)
          Returns the integer value of an octal digit.
static void out()
          Prints a blank line.
static void out(Class clz)
          Prints the passed class information.
static void out(Object o)
          Prints the passed Object.
static void out(String s)
          Prints the passed String value.
static void out(Throwable e)
          Prints the passed exception information.
static long pad(long lMin, long lMultiple)
          Return the smallest value that is not less than the first argument and is a multiple of the second argument.
static long parseBandwidth(String s)
          Parse the given string representation of a number of bytes per second.
static long parseBandwidth(String s, int nDefaultPower)
          Parse the given string representation of a number of bytes per second.
static String[] parseDelimitedString(String s, char chDelim)
          Parse a character-delimited String into an array of Strings.
static int parseHex(char ch)
          Return the integer value of a hexidecimal digit.
static byte[] parseHex(String s)
          Parse the passed String of hexidecimal characters into a binary value.
static long parseMemorySize(String s)
          Parse the given string representation of a number of bytes.
static long parseMemorySize(String s, int nDefaultPower)
          Parse the given string representation of a number of bytes.
static long parseTime(String s)
          Parse the given string representation of a time duration and return its value as a number of milliseconds.
static long parseTime(String s, int nDefaultUnit)
          Parse the given string representation of a time duration and return its value as a number of milliseconds.
static long parseTimeNanos(String s)
          Parse the given string representation of a time duration and return its value as a number of nanoseconds.
static long parseTimeNanos(String s, int nDefaultUnit)
          Parse the given string representation of a time duration and return its value as a number of nanoseconds.
static String printStackTrace(Throwable e)
          Build a stack trace for the passed exception.
static int[] randomize(int[] a)
          Randomize the order of the elements within the passed array.
static List randomize(List list)
          Randomize the order of the elements within the passed list.
static Object[] randomize(Object[] a)
          Randomize the order of the elements within the passed array.
static byte[] read(File file)
          Read the contents out of the specified file and return the result as a byte array.
static byte[] read(InputStream stream)
          Read the contents out of the passed stream and return the result as a byte array.
static int read(InputStream stream, byte[] ab)
          Read the contents out of the passed stream into the passed byte array and return the length read.
static String read(Reader reader)
          Read the contents out of the passed Reader and return the result as a String.
static byte[] read(URL url)
          Read the contents of the specified URL and return the result as a byte array.
static void redirectAll(PrintWriter out)
          As much as possible, print absolutely everything to the specified PrintWriter.
static String replace(String sText, String sFrom, String sTo)
          Replace all occurences of the specified substring in the specified string.
static void setErr(PrintWriter writer)
          Sets the current writer used for tracing.
static void setLog(PrintWriter writer)
          Sets the current writer used for logging.
static void setLogEcho(boolean fEcho)
          Specify whether the log should echo to the console.
static void setOut(PrintWriter writer)
          Sets the current writer used for printing.
static String toBandwidthString(long cbps)
          Format the passed bandwidth (in bytes per second) as a String that can be parsed by parseBandwidth(java.lang.String) such that cb==parseBandwidth(toBandwidthString(cb)) holds true for all legal values of cbps.
static String toBandwidthString(long cbps, boolean fExact)
          Format the passed bandwidth (in bytes per second) as a String.
static String toCharEscape(char ch)
          Format a char to a printable escape if necessary.
static int toCrc(byte[] ab)
          Calculate a CRC32 value from a byte array.
static int toCrc(byte[] ab, int of, int cb)
          Calculate a CRC32 value from a portion of a byte array.
static int toCrc(byte[] ab, int of, int cb, int nCrc)
          Continue to calculate a CRC32 value from a portion of a byte array.
static String toDecString(int n, int cDigits)
          Format the passed integer as a fixed-length decimal string.
static String toDelimitedString(int[] an, String sDelim)
          Format the content of the passed integer array as a delimited string.
static String toDelimitedString(Iterator iter, String sDelim)
          Format the content of the passed Iterator as a delimited string.
static String toDelimitedString(long[] al, String sDelim)
          Format the content of the passed long array as a delimited string.
static String toDelimitedString(Object[] ao, String sDelim)
          Format the content of the passed Object array as a delimited string.
static String toHex(byte[] ab)
          Convert a byte array to the hex sequence of 2 hex digits per byte.
static String toHex(int b)
          Convert a byte to the hex sequence of 2 hex digits.
static String toHexDump(byte[] ab, int cBytesPerLine)
          Convert a byte array to a hex dump.
static String toHexEscape(byte b)
          Convert a byte to a hex sequence of '0' + 'x' + 2 hex digits.
static String toHexEscape(byte[] ab)
          Convert a byte array to a hex sequence of '0' + 'x' + 2 hex digits per byte.
static String toHexEscape(byte[] ab, int of, int cb)
          Convert a byte array to a hex sequence of '0' + 'x' + 2 hex digits per byte.
static String toHexString(int n, int cDigits)
          Format the passed integer as a fixed-length hex string.
static String toMemorySizeString(long cb)
          Format the passed memory size (in bytes) as a String that can be parsed by parseMemorySize(java.lang.String) such that cb==parseMemorySize(toMemorySizeString(cb)) holds true for all legal values of cb.
static String toMemorySizeString(long cb, boolean fExact)
          Format the passed memory size (in bytes) as a String.
static String toQuotedCharEscape(char ch)
          Format a char to a printable escape if necessary as it would appear (quoted) in Java source code.
static String toQuotedStringEscape(String s)
          Format a String as it would appear (quoted) in Java source code, escaping characters as necessary.
static String toSqlString(String s)
          Escapes the string for SQL.
static String toString(Class clz)
          Formats Class information for debug output purposes.
static String toStringEscape(String s)
          Format a String escaping characters as necessary.
static String toUnicodeEscape(char ch)
          Format a Unicode character to the Unicode escape sequence of '\' + 'u' + 4 hex digis.
static void trace(boolean fVal)
          Display the value of a boolean expression.
static void trace(byte[] ab)
          Display the value of a byte array expression.
static void trace(char chVal)
          Display the value of a char expression.
static void trace(double dflVal)
          Display the value of a double expression.
static void trace(float flVal)
          Display the value of a float expression.
static void trace(int nVal)
          Display the value of an int expression.
static void trace(long lVal)
          Display the value of a long expression.
static void trace(Object oVal)
          Display the value of an Object expression.
static void trace(String sVal)
          Display the value of a String expression.
protected static long updateSafeTimeMillis(long ldtAssumed)
          Updates and returns a "safe" current time in milliseconds based on the "unsafe" assumed time.
 

Field Detail

UNIT_NS

public static final int UNIT_NS
Integer constant representing a unit of nanoseconds.

See Also:
parseTimeNanos(String, int), Constant Field Values

UNIT_US

public static final int UNIT_US
Integer constant representing a unit of microseconds.

See Also:
parseTimeNanos(String, int), Constant Field Values

UNIT_MS

public static final int UNIT_MS
Integer constant representing a unit of milliseconds.

See Also:
parseTime(String, int), Constant Field Values

UNIT_S

public static final int UNIT_S
Integer constant representing a unit of seconds.

See Also:
parseTime(String, int), Constant Field Values

UNIT_M

public static final int UNIT_M
Integer constant representing a unit of minutes.

See Also:
parseTime(String, int), Constant Field Values

UNIT_H

public static final int UNIT_H
Integer constant representing a unit of hours.

See Also:
parseTime(String, int), Constant Field Values

UNIT_D

public static final int UNIT_D
Integer constant representing a unit of days.

See Also:
parseTime(String, int), Constant Field Values

POWER_0

public static final int POWER_0
Integer constant representing an exponent of zero.

See Also:
parseBandwidth(String, int), parseMemorySize(String, int), Constant Field Values

POWER_K

public static final int POWER_K
Integer constant representing an exponent of 10.

See Also:
parseBandwidth(String, int), parseMemorySize(String, int), Constant Field Values

POWER_M

public static final int POWER_M
Integer constant representing an exponent of 20.

See Also:
parseBandwidth(String, int), parseMemorySize(String, int), Constant Field Values

POWER_G

public static final int POWER_G
Integer constant representing an exponent of 30.

See Also:
parseBandwidth(String, int), parseMemorySize(String, int), Constant Field Values

POWER_T

public static final int POWER_T
Integer constant representing an exponent of 40.

See Also:
parseBandwidth(String, int), parseMemorySize(String, int), Constant Field Values
Constructor Detail

Base

public Base()
Method Detail

trace

public static void trace(boolean fVal)
Display the value of a boolean expression.


trace

public static void trace(char chVal)
Display the value of a char expression.


trace

public static void trace(int nVal)
Display the value of an int expression.


trace

public static void trace(long lVal)
Display the value of a long expression.


trace

public static void trace(float flVal)
Display the value of a float expression.


trace

public static void trace(double dflVal)
Display the value of a double expression.


trace

public static void trace(byte[] ab)
Display the value of a byte array expression.


trace

public static void trace(String sVal)
Display the value of a String expression.


trace

public static void trace(Object oVal)
Display the value of an Object expression.


azzert

public static RuntimeException azzert()
Definite assertion failure.


azzert

public static void azzert(boolean f)
Test an assertion.


azzert

public static void azzert(boolean f,
                          String s)
Test an assertion, and print the specified message if the assertion fails.


azzertFailed

public static void azzertFailed(String sMsg)
Throw an assertion exception.

Parameters:
sMsg - the assertion message

ensureRuntimeException

public static RuntimeException ensureRuntimeException(Throwable e)
Convert the passed exception to a RuntimeException if necessary.

Parameters:
e - any Throwable object
Returns:
a RuntimeException

ensureRuntimeException

public static RuntimeException ensureRuntimeException(Throwable e,
                                                      String s)
Convert the passed exception to a RuntimeException if necessary.

Parameters:
e - any Throwable object
s - an additional description
Returns:
a RuntimeException

getOriginalException

public static Throwable getOriginalException(RuntimeException e)
Unwind the wrapper (runtime) exception to extract the original

Parameters:
e - Runtime exception (wrapper)
Returns:
an original wrapped exception

out

public static void out()
Prints a blank line.


out

public static void out(Object o)
Prints the passed Object.

Parameters:
o - the Object to print.

out

public static void out(String s)
Prints the passed String value.

Parameters:
s - the String to print.

out

public static void out(Class clz)
Prints the passed class information.

Parameters:
clz - the class object to print.

out

public static void out(Throwable e)
Prints the passed exception information.

Parameters:
e - the Throwable object to print.

err

public static void err()
Prints a blank line to the trace Writer.


err

public static void err(Object o)
Prints the passed Object to the trace Writer.

Parameters:
o - the Object to print.

err

public static void err(String s)
Prints the passed String value to the trace Writer.

Parameters:
s - the String to print.

err

public static void err(Class clz)
Prints the passed class information to the trace Writer.

Parameters:
clz - the class object to print.

err

public static void err(Throwable e)
Prints the passed exception information to the trace Writer.

Parameters:
e - the Throwable object to print.

log

public static void log()
Prints a blank line to the log.


log

public static void log(Object o)
Prints the passed Object to the log.

Parameters:
o - the Object to print.

log

public static void log(String s)
Prints the passed String value to the log.

Parameters:
s - the String to print.

log

public static void log(Class clz)
Prints the passed class information to the log.

Parameters:
clz - the class object to print.

log

public static void log(Throwable e)
Prints the passed exception information to the log.

Parameters:
e - the Throwable object to print.

getContextClassLoader

public static ClassLoader getContextClassLoader()
Try to determine the ClassLoader that supports the current context.

Returns:
a ClassLoader to use for the current context

getContextClassLoader

public static ClassLoader getContextClassLoader(Object o)
Try to determine the ClassLoader that supports the current context.

Parameters:
o - the calling object, or any object out of the application that is requesting the class loader
Returns:
a ClassLoader to use for the current context

getCallerStackFrame

public static Base.StackFrame getCallerStackFrame()
Get the StackFrame information for the caller of the current method.

Returns:
the StackFrame information for the caller of the current method

getStackFrame

public static Base.StackFrame getStackFrame()
Get the StackFrame information for the current method.

Returns:
the StackFrame information for the current method

getStackFrames

public static Base.StackFrame[] getStackFrames()
Iterate the StackFrame information for all callers, going from the inside outwards, and starting with the caller of this method.

Returns:
an Iterator of StackFrames

getStackTrace

public static String getStackTrace()
Build a stack trace for the current thread.

Returns:
a String containing a printable stack trace

getStackTrace

public static String getStackTrace(Throwable e)
Build a stack trace for the passed exception that does not include the exception description itself.

Parameters:
e - a Throwable object that contains stack trace information
Returns:
a String containing a printable stack trace

printStackTrace

public static String printStackTrace(Throwable e)
Build a stack trace for the passed exception.

Parameters:
e - a Throwable object that contains stack trace information
Returns:
a String containing a printable stack trace

makeThread

public static Thread makeThread(ThreadGroup group,
                                Runnable runnable,
                                String sName)
Create a Thread with the specified group, runnable, and name, using the configured ThreadFactory, as specified by the tangosol.coherence.threadfactory system property.

Parameters:
group - (optional) the thread's thread group
runnable - (optional) the thread's runnable
sName - (optional) the thread's name
Returns:
a new thread using the specified parameters

getCommonMonitor

public static Object getCommonMonitor(int i)
Return the common monitor associated with the specified integer value.

Common monitors allow for a low-cost means to reduce contention by spreading synchronization over a large number of monitors. An example useage would be to produce an "atomic array" without utilizing the Java 1.5 java.util.concurrent features. For instance to atomically change an element within an array which is being simultaneously updated by multiple threads:

 synchronized (getCommonMonitor(System.identityHashCode(aoShared) + i))
     {
     oOld = aoShared[i];
     aoShared[i] = oNew;
     }
 
With this approach many threads may concurrently access various array elements without having to synchronize on the array itself, and contend with each other. The use of common monitors also avoids the overhead of allocating a unique monitor per index. This example additionally makes use of the array's identity hash code to avoid frequent collisions against other atomic arrays for the same indices.

As they are shared, these monitors will apply to any number of unrelated entities, and as such certain precautions must be employed when using them.

The ideal number of common monitors in a JVM is one per concurrently executing thread. As this number is generally unknown the actual number of monitors is pre-sized based on a multiple of the number of processors available to the JVM. The value may also be manually specified via the tangosol.coherence.commonmonitors system property.

Parameters:
i - the common monitor identifier
Returns:
the assocaited monitor

getCommonMonitor

public static Object getCommonMonitor(long l)
Return the common monitor associated with the specified long value.

Parameters:
l - the common monitor identifier
Returns:
the associated monitor
See Also:
getCommonMonitor(int)

toString

public static String toString(Class clz)
Formats Class information for debug output purposes.

Parameters:
clz - the Class to print information for
Returns:
a String describing the Class in detail

isDecimal

public static boolean isDecimal(char ch)
Returns true if the passed character is a decimal digit.

Parameters:
ch - The character to check

decimalValue

public static int decimalValue(char ch)
Returns the integer value of a decimal digit.

Parameters:
ch - The character to convert

getMaxDecDigits

public static int getMaxDecDigits(int n)
Calculate the number of decimal digits needed to display the passed value.

Parameters:
n - the value
Returns:
the number of decimal digits needed to display the value

toDecString

public static String toDecString(int n,
                                 int cDigits)
Format the passed integer as a fixed-length decimal string.

Parameters:
n - the value
cDigits - the length of the resulting decimal string
Returns:
the decimal value formated to the specified length string

pad

public static long pad(long lMin,
                       long lMultiple)
Return the smallest value that is not less than the first argument and is a multiple of the second argument. Effectively rounds the first argument up to a multiple of the second.

Parameters:
lMin - the smallest value to return
lMultiple - the return value will be a multiple of this argument
Returns:
the smallest multiple of the second argument that is not less than the first

isOctal

public static boolean isOctal(char ch)
Returns true if the passed character is an octal digit.

Parameters:
ch - The character to check

octalValue

public static int octalValue(char ch)
Returns the integer value of an octal digit.

Parameters:
ch - The character to convert

isHex

public static boolean isHex(char ch)
Returns true if the passed character is a hexidecimal digit.

Parameters:
ch - The character to check

hexValue

public static int hexValue(char ch)
Returns the integer value of a hexidecimal digit.

Parameters:
ch - The character to convert

getMaxHexDigits

public static int getMaxHexDigits(int n)
Calculate the number of hex digits needed to display the passed value.

Parameters:
n - the value
Returns:
the number of hex digits needed to display the value

toHexString

public static String toHexString(int n,
                                 int cDigits)
Format the passed integer as a fixed-length hex string.

Parameters:
n - the value
cDigits - the length of the resulting hex string
Returns:
the hex value formated to the specified length string

toHex

public static String toHex(int b)
Convert a byte to the hex sequence of 2 hex digits.

Parameters:
b - the byte
Returns:
the hex sequence

toHex

public static String toHex(byte[] ab)
Convert a byte array to the hex sequence of 2 hex digits per byte. This is a replacement for Text.toString(char[]).

Parameters:
ab - the byte array
Returns:
the hex sequence

toHexEscape

public static String toHexEscape(byte b)
Convert a byte to a hex sequence of '0' + 'x' + 2 hex digits.

Parameters:
b - the byte
Returns:
the hex sequence

toHexEscape

public static String toHexEscape(byte[] ab)
Convert a byte array to a hex sequence of '0' + 'x' + 2 hex digits per byte.

Parameters:
ab - the byte array
Returns:
the hex sequence

toHexEscape

public static String toHexEscape(byte[] ab,
                                 int of,
                                 int cb)
Convert a byte array to a hex sequence of '0' + 'x' + 2 hex digits per byte.

Parameters:
ab - the byte array
of - the offset into array
cb - the number of bytes to convert
Returns:
the hex sequence

toHexDump

public static String toHexDump(byte[] ab,
                               int cBytesPerLine)
Convert a byte array to a hex dump. This is a replacement for Text.toString(byte[] ab, int cBytesPerLine).

Parameters:
ab - the byte array to format as a hex string
cBytesPerLine - the number of bytes to display on a line
Returns:
a multi-line hex dump

parseHex

public static byte[] parseHex(String s)
Parse the passed String of hexidecimal characters into a binary value. This implementation allows the passed String to be prefixed with "0x".

Parameters:
s - the hex String to evaluate
Returns:
the byte array value of the passed hex String

parseHex

public static int parseHex(char ch)
Return the integer value of a hexidecimal digit.

Parameters:
ch - the hex character to evaluate
Returns:
the integer value of the passed hex character

toUnicodeEscape

public static String toUnicodeEscape(char ch)
Format a Unicode character to the Unicode escape sequence of '\' + 'u' + 4 hex digis.

Parameters:
ch - the character
Returns:
the Unicode escape sequence

toCharEscape

public static String toCharEscape(char ch)
Format a char to a printable escape if necessary.

Parameters:
ch - the char
Returns:
a printable String representing the passed char

toQuotedCharEscape

public static String toQuotedCharEscape(char ch)
Format a char to a printable escape if necessary as it would appear (quoted) in Java source code. This is a replacement for Text.printableChar().

Parameters:
ch - the character
Returns:
a printable String in single quotes representing the passed char

toStringEscape

public static String toStringEscape(String s)
Format a String escaping characters as necessary.

Parameters:
s - the String
Returns:
a printable String representing the passed String

toQuotedStringEscape

public static String toQuotedStringEscape(String s)
Format a String as it would appear (quoted) in Java source code, escaping characters as necessary. This is a replacement for Text.printableString().

Parameters:
s - the String
Returns:
a printable String in double quotes representing the passed String

escape

public static int escape(char ch,
                         char[] ach,
                         int of)
Format a char to a printable escape if necessary, putting the result into the passed array. The array must be large enough to accept six characters.

Parameters:
ch - the character to format
ach - the array of characters to format into
of - the offset in the array to format at
Returns:
the number of characters used to format the char

toSqlString

public static String toSqlString(String s)
Escapes the string for SQL.

Returns:
the string quoted for SQL and escaped as necessary

indentString

public static String indentString(String sText,
                                  String sIndent)
Indent the passed multi-line string.

Parameters:
sText - the string to indent
sIndent - a string used to indent each line
Returns:
the string, indented

indentString

public static String indentString(String sText,
                                  String sIndent,
                                  boolean fFirstLine)
Textually indent the passed multi-line string.

Parameters:
sText - the string to indent
sIndent - a string used to indent each line
fFirstLine - true indents all lines; false indents all but the first
Returns:
the string, indented

breakLines

public static String breakLines(String sText,
                                int nWidth,
                                String sIndent)
Breaks the specified string into a multi-line string.

Parameters:
sText - the string to break
nWidth - the max width of resulting lines (including the indent)
sIndent - a string used to indent each line
Returns:
the string, broken and indented

breakLines

public static String breakLines(String sText,
                                int nWidth,
                                String sIndent,
                                boolean fFirstLine)
Breaks the specified string into a multi-line string.

Parameters:
sText - the string to break
nWidth - the max width of resulting lines (including the indent)
sIndent - a string used to indent each line
fFirstLine - if true indents all lines; otherwise indents all but the first
Returns:
the string, broken and indented

dup

public static String dup(char ch,
                         int cch)
Create a String of the specified length containing the specified character.

Parameters:
ch - the character to fill the String with
cch - the length of the String
Returns:
a String containing the character repeated times

dup

public static String dup(String s,
                         int c)
Create a String which is a duplicate of the specified number of the passed String.

Parameters:
s - the String to fill the new String with
c - the number of duplicates to put into the new String
Returns:
a String containing the String s repeated c times

replace

public static String replace(String sText,
                             String sFrom,
                             String sTo)
Replace all occurences of the specified substring in the specified string.

Parameters:
sText - string to change
sFrom - pattern to change from
sTo - pattern to change to
Returns:
modified string

parseDelimitedString

public static String[] parseDelimitedString(String s,
                                            char chDelim)
Parse a character-delimited String into an array of Strings.

Parameters:
s - character-delimited String to parse
chDelim - character delimiter
Returns:
an array of String objects parsed from the passed String

toDelimitedString

public static String toDelimitedString(int[] an,
                                       String sDelim)
Format the content of the passed integer array as a delimited string.

Parameters:
an - the array
sDelim - the delimiter
Returns:
the formated string

toDelimitedString

public static String toDelimitedString(long[] al,
                                       String sDelim)
Format the content of the passed long array as a delimited string.

Parameters:
al - the array
sDelim - the delimiter
Returns:
the formated string

toDelimitedString

public static String toDelimitedString(Object[] ao,
                                       String sDelim)
Format the content of the passed Object array as a delimited string.

Parameters:
ao - the array
sDelim - the delimiter
Returns:
the formated string

toDelimitedString

public static String toDelimitedString(Iterator iter,
                                       String sDelim)
Format the content of the passed Iterator as a delimited string.

Parameters:
iter - the Iterator
sDelim - the delimiter
Returns:
the formated string

parseBandwidth

public static long parseBandwidth(String s)
Parse the given string representation of a number of bytes per second. The supplied string must be in the format:

[\d]+[[.][\d]+]?[K|k|M|m|G|g|T|t]?[[B|b][P|p][S|s]]?

where the first non-digit (from left to right) indicates the factor with which the preceeding decimal value should be multiplied:

If the string value does not contain a factor, a factor of one is assumed.

The optional last three characters indicate the unit of measure, [b][P|p][S|s] in the case of bits per second and [B][P|p][S|s] in the case of bytes per second. If the string value does not contain a unit, a unit of bits per second is assumed.

Parameters:
s - a string with the format: [\d]+[[.][\d]+]?[K|k|M|m|G|g|T|t]?[[B|b][P|p][S|s]]?
Returns:
the number of bytes per second represented by the given string

parseBandwidth

public static long parseBandwidth(String s,
                                  int nDefaultPower)
Parse the given string representation of a number of bytes per second. The supplied string must be in the format:

[\d]+[[.][\d]+]?[K|k|M|m|G|g|T|t]?[[B|b][P|p][S|s]]?

where the first non-digit (from left to right) indicates the factor with which the preceeding decimal value should be multiplied:

If the string value does not contain an explict or implicit factor, a factor calculated by raising 2 to the given default power is used. The default power can be one of:

The optional last three characters indicate the unit of measure, [b][P|p][S|s] in the case of bits per second and [B][P|p][S|s] in the case of bytes per second. If the string value does not contain a unit, a unit of bits per second is assumed.

Parameters:
s - a string with the format: [\d]+[[.][\d]+]?[K|k|M|m|G|g|T|t]?[[B|b][P|p][S|s]]?
nDefaultPower - the exponent used to calculate the factor used in the conversion if one is not implied by the given string
Returns:
the number of bytes per second represented by the given string

toBandwidthString

public static String toBandwidthString(long cbps)
Format the passed bandwidth (in bytes per second) as a String that can be parsed by parseBandwidth(java.lang.String) such that cb==parseBandwidth(toBandwidthString(cb)) holds true for all legal values of cbps.

Parameters:
cbps - the number of bytes per second
Returns:
a String representation of the given bandwidth

toBandwidthString

public static String toBandwidthString(long cbps,
                                       boolean fExact)
Format the passed bandwidth (in bytes per second) as a String. This method will possibly round the memory size for purposes of producing a more-easily read String value unless the fExact parameters is passed as true; if fExact is true, then cb==parseBandwidth(toBandwidthString(cb, true)) holds true for all legal values of cbps.

Parameters:
cbps - the number of bytes per second
fExact - true if the String representation must be exact, or false if it can be an approximation
Returns:
a String representation of the given bandwidth

parseMemorySize

public static long parseMemorySize(String s)
Parse the given string representation of a number of bytes. The supplied string must be in the format:

[\d]+[[.][\d]+]?[K|k|M|m|G|g|T|t]?[B|b]?

where the first non-digit (from left to right) indicates the factor with which the preceeding decimal value should be multiplied:

If the string value does not contain a factor, a factor of one is assumed.

The optional last character B or b indicates a unit of bytes.

Parameters:
s - a string with the format [\d]+[[.][\d]+]?[K|k|M|m|G|g|T|t]?[B|b]?
Returns:
the number of bytes represented by the given string

parseMemorySize

public static long parseMemorySize(String s,
                                   int nDefaultPower)
Parse the given string representation of a number of bytes. The supplied string must be in the format:

[\d]+[[.][\d]+]?[K|k|M|m|G|g|T|t]?[B|b]?

where the first non-digit (from left to right) indicates the factor with which the preceeding decimal value should be multiplied:

If the string value does not contain an explict or implicit factor, a factor calculated by raising 2 to the given default power is used. The default power can be one of:

The optional last character B or b indicates a unit of bytes.

Parameters:
s - a string with the format [\d]+[[.][\d]+]?[K|k|M|m|G|g|T|t]?[B|b]?
nDefaultPower - the exponent used to calculate the factor used in the conversion if one is not implied by the given string
Returns:
the number of bytes represented by the given string

toMemorySizeString

public static String toMemorySizeString(long cb)
Format the passed memory size (in bytes) as a String that can be parsed by parseMemorySize(java.lang.String) such that cb==parseMemorySize(toMemorySizeString(cb)) holds true for all legal values of cb.

Parameters:
cb - the number of bytes of memory
Returns:
a String representation of the given memory size

toMemorySizeString

public static String toMemorySizeString(long cb,
                                        boolean fExact)
Format the passed memory size (in bytes) as a String. This method will possibly round the memory size for purposes of producing a more-easily read String value unless the fExact parameters is passed as true; if fExact is true, then cb==parseMemorySize(toMemorySizeString(cb, true)) holds true for all legal values of cb.

Parameters:
cb - the number of bytes of memory
fExact - true if the String representation must be exact, or false if it can be an approximation
Returns:
a String representation of the given memory size

parseTime

public static long parseTime(String s)
Parse the given string representation of a time duration and return its value as a number of milliseconds. The supplied string must be in the format:

[\d]+[[.][\d]+]?[NS|ns|US|us|MS|ms|S|s|M|m|H|h|D|d]?

where the first non-digits (from left to right) indicate the unit of time duration:

If the string value does not contain a unit, a unit of milliseconds is assumed.

Parameters:
s - a string with the format [\d]+[[.][\d]+]?[NS|ns|US|us|MS|ms|S|s|M|m|H|h|D|d]?
Returns:
the number of milliseconds represented by the given string rounded down to the nearest millisecond
See Also:
parseTimeNanos(String)

parseTime

public static long parseTime(String s,
                             int nDefaultUnit)
Parse the given string representation of a time duration and return its value as a number of milliseconds. The supplied string must be in the format:

[\d]+[[.][\d]+]?[NS|ns|US|us|MS|ms|S|s|M|m|H|h|D|d]?

where the first non-digits (from left to right) indicate the unit of time duration:

If the string value does not contain a unit, the specified default unit is assumed. The default unit can be one of:

Parameters:
s - a string with the format [\d]+[[.][\d]+]?[NS|ns|US|us|MS|ms|S|s|M|m|H|h|D|d]?
nDefaultUnit - the unit to use in the conversion to milliseconds if one is not specified in the supplied string
Returns:
the number of milliseconds represented by the given string rounded down to the nearest millisecond
See Also:
parseTimeNanos(String, int)

parseTimeNanos

public static long parseTimeNanos(String s)
Parse the given string representation of a time duration and return its value as a number of nanoseconds. The supplied string must be in the format:

[\d]+[[.][\d]+]?[NS|ns|US|us|MS|ms|S|s|M|m|H|h|D|d]?

where the first non-digits (from left to right) indicate the unit of time duration:

If the string value does not contain a unit, a unit of nanoseconds is assumed.

Parameters:
s - a string with the format [\d]+[[.][\d]+]?[NS|ns|US|us|MS|ms|S|s|M|m|H|h|D|d]?
Returns:
the number of nanoseconds represented by the given string rounded down to the nearest nanosecond

parseTimeNanos

public static long parseTimeNanos(String s,
                                  int nDefaultUnit)
Parse the given string representation of a time duration and return its value as a number of nanoseconds. The supplied string must be in the format:

[\d]+[[.][\d]+]?[NS|ns|US|us|MS|ms|S|s|M|m|H|h|D|d]?

where the first non-digits (from left to right) indicate the unit of time duration:

If the string value does not contain a unit, the specified default unit is assumed. The default unit can be one of:

Parameters:
s - a string with the format [\d]+[[.][\d]+]?[NS|ns|US|us|MS|ms|S|s|M|m|H|h|D|d]?
nDefaultUnit - the unit to use in the conversion to nanoseconds if one is not specified in the supplied string
Returns:
the number of nanoseconds represented by the given string rounded down to the nearest nanosecond

formatDateTime

public static String formatDateTime(long ldt)
Format a long value into a human readable date/time string.

Parameters:
ldt - a Java long containing a date/time value
Returns:
a human readable date/time string

equals

public static boolean equals(Object o1,
                             Object o2)
Compare two references for equality.

Parameters:
o1 -
o2 -
Returns:
true if equal, false otherwise

equalsDeep

public static boolean equalsDeep(Object o1,
                                 Object o2)
Deeply compare two references for equality. This dives down into arrays, including nested arrays.

Parameters:
o1 -
o2 -
Returns:
true if deeply equal, false otherwise

toCrc

public static int toCrc(byte[] ab)
Calculate a CRC32 value from a byte array.

Parameters:
ab - an array of bytes
Returns:
the 32-bit CRC value

toCrc

public static int toCrc(byte[] ab,
                        int of,
                        int cb)
Calculate a CRC32 value from a portion of a byte array.

Parameters:
ab - an array of bytes
of - the offset into the array
cb - the number of bytes to evaluate
Returns:
the 32-bit CRC value

toCrc

public static int toCrc(byte[] ab,
                        int of,
                        int cb,
                        int nCrc)
Continue to calculate a CRC32 value from a portion of a byte array.

Parameters:
ab - an array of bytes
of - the offset into the array
cb - the number of bytes to evaluate
nCrc - the previous CRC value
Returns:
the 32-bit CRC value

getSafeTimeMillis

public static long getSafeTimeMillis()
Returns a "safe" current time in milliseconds.

Unlike the System.currentTimeMillis() this method guarantees that the time never "goes back". More specifically, when called twice on the same thread, the second call will never return a value that is less then the value returned by the first call. If a system time correction becomes necessary, an attempt will be made to gradually compensate the returned value, so in the long run the value returned by this method is the same as the system time.

Additionally, the following always holds true:

   Base.getSafeTime() >= System.currentTimeMillis();
 

Returns:
the difference, measured in milliseconds, between the corrected current time and midnight, January 1, 1970 UTC.

updateSafeTimeMillis

protected static long updateSafeTimeMillis(long ldtAssumed)
Updates and returns a "safe" current time in milliseconds based on the "unsafe" assumed time.

When called twice on the same thread, the second call will never return a value that is less then the value returned by the first call. If a system time correction becomes necessary, an attempt will be made to gradually compensate the returned value, so in the long run the value returned by this method is the same as the assumed time.

Additionally, the following always holds true:

   Base.updateSafeSafeTime(assumed) >= assumed;
 

Parameters:
ldtAssumed - the assumed current time in milliseconds
Returns:
the corrected time

makeInteger

public static Integer makeInteger(int n)
Factory method to produce Integer objects with an optimization that uses cached Integer objects for all relatively-low numbers.

Parameters:
n - an int
Returns:
an Integer whose value is the passed int
Since:
Coherence 3.2

makeLong

public static Long makeLong(long n)
Factory method to produce Long objects with an optimization that uses cached Long objects for all relatively-low numbers.

Parameters:
n - a long
Returns:
a Long whose value is the passed long
Since:
Coherence 3.2

getRandom

public static Random getRandom()
Obtain a Random object that can be used to get random values.

Returns:
a random number generator
Since:
Coherence 3.2

randomize

public static List randomize(List list)
Randomize the order of the elements within the passed list.

Parameters:
list - the List to randomize; the passed List is not altered
Returns:
a new and immutable List whose contents are identical to those of the passed list except for the order in which they appear
Since:
Coherence 3.2

randomize

public static Object[] randomize(Object[] a)
Randomize the order of the elements within the passed array.

Parameters:
a - an array of objects to randomize
Returns:
the array that was passed in, and with its contents unchanged except for the order in which they appear
Since:
Coherence 3.2

randomize

public static int[] randomize(int[] a)
Randomize the order of the elements within the passed array.

Parameters:
a - an array of int values to randomize
Returns:
the array that was passed in, and with its contents unchanged except for the order in which they appear
Since:
Coherence 3.2

getRandomBinary

public static Binary getRandomBinary(int cbMin,
                                     int cbMax)
Generates a random-length Binary within the length bounds provided whose contents are random bytes.

Parameters:
cbMin - the minimum number of bytes in the resulting Binary
cbMax - the maximum number of bytes in the resulting Binary
Returns:
a randomly generated Binary object
Since:
Coherence 3.2

getRandomString

public static String getRandomString(int cchMin,
                                     int cchMax,
                                     boolean fAscii)
Generates a random-length String within the length bounds provided. If the ASCII option is indicated, the characters will be in the range [32-127], otherwise the characters will be in the range [0x0000-0xFFFF].

Parameters:
cchMin - the minimum length of the resulting String
cchMax - the maximum length of the resulting String
fAscii - true if the resulting String should contain only ASCII values
Returns:
a randomly generated String object
Since:
Coherence 3.2

getOut

public static PrintWriter getOut()
Obtains the current writer used for printing.

Returns:
the current writer used for printing; never null

setOut

public static void setOut(PrintWriter writer)
Sets the current writer used for printing.

Parameters:
writer - the java.io.PrintWriter instance to use for printing; may be null

getErr

public static PrintWriter getErr()
Obtains the current writer used for tracing.

Returns:
the current writer used for tracing; never null

setErr

public static void setErr(PrintWriter writer)
Sets the current writer used for tracing.

Parameters:
writer - the java.io.PrintWriter instance to use for tracing; may be null

getLog

public static PrintWriter getLog()
Obtains the current writer used for logging.

Returns:
the current writer used for logging; never null

setLog

public static void setLog(PrintWriter writer)
Sets the current writer used for logging.

Parameters:
writer - the java.io.PrintWriter instance to use for logging; may be null

isLogEcho

public static boolean isLogEcho()
Determine if the log is echoed to the console.

Returns:
true if the log is echoed to the console

setLogEcho

public static void setLogEcho(boolean fEcho)
Specify whether the log should echo to the console.

Parameters:
fEcho - true if the log should echo to the console

redirectAll

public static void redirectAll(PrintWriter out)
As much as possible, print absolutely everything to the specified PrintWriter.

Parameters:
out - the PrintWriter to write everything to

read

public static int read(InputStream stream,
                       byte[] ab)
                throws IOException
Read the contents out of the passed stream into the passed byte array and return the length read. This method will read up to the number of bytes that can fit into the passed array.

Parameters:
stream - a java.io.InputStream object to read from
ab - a byte array to read into
Returns:
the number of bytes read from the InputStream and stored into the passed byte array
Throws:
IOException

read

public static byte[] read(InputStream stream)
                   throws IOException
Read the contents out of the passed stream and return the result as a byte array.

Parameters:
stream - a java.io.InputStream object to read from
Returns:
a byte array containing the contents of the passed InputStream
Throws:
IOException

read

public static String read(Reader reader)
                   throws IOException
Read the contents out of the passed Reader and return the result as a String.

Parameters:
reader - a java.io.Reader object to read from
Returns:
a String containing the contents of the passed Reader
Throws:
IOException

read

public static byte[] read(File file)
                   throws IOException
Read the contents out of the specified file and return the result as a byte array.

Parameters:
file - the java.io.File object to read the contents of
Returns:
the contents of the specified File as a byte array
Throws:
IOException

read

public static byte[] read(URL url)
                   throws IOException
Read the contents of the specified URL and return the result as a byte array.

Parameters:
url - the java.net.URL object to read the contents of
Returns:
the contents of the specified URL as a byte array
Throws:
IOException

CoherenceTM v3.3
Copyright© 2000-2007 by Oracle Corporation