|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.opends.server.util.StaticUtils
@PublicAPI(stability=UNCOMMITTED, mayInstantiate=false, mayExtend=false, mayInvoke=true) public final class StaticUtils
This class defines a number of static utility methods that may be used throughout the server. Note that because of the frequency with which these methods are expected to be used, very little debug logging will be performed to prevent the log from filling up with unimportant calls and to reduce the impact that debugging may have on performance.
Method Summary | |
---|---|
static java.util.ArrayList<java.lang.String> |
arrayToList(java.lang.String[] stringArray)
Retrieves an array list containing the contents of the provided array. |
static void |
byteArrayToHexPlusAscii(java.lang.StringBuilder buffer,
byte[] b,
int indent)
Appends a string representation of the provided byte array to the given buffer using the specified indent. |
static void |
byteArrayToHexPlusAscii(java.lang.StringBuilder buffer,
java.nio.ByteBuffer b,
int indent)
Appends a string representation of the remaining unread data in the provided byte buffer to the given buffer using the specified indent. |
static java.lang.String |
bytesToColonDelimitedHex(byte[] b)
Retrieves a string representation of the contents of the provided byte array using hexadecimal characters and a colon between each byte. |
static java.lang.String |
bytesToHex(byte[] b)
Retrieves a string representation of the contents of the provided byte array using hexadecimal characters and a space between each byte. |
static java.lang.String |
bytesToHex(java.nio.ByteBuffer b)
Retrieves a string representation of the contents of the provided byte buffer using hexadecimal characters and a space between each byte. |
static java.lang.String |
bytesToHexNoSpace(byte[] b)
Retrieves a string representation of the contents of the provided byte array using hexadecimal characters with no space between each byte. |
static char |
byteToASCII(byte b)
Retrieves the printable ASCII representation of the provided byte. |
static java.lang.String |
byteToBinary(byte b)
Retrieves a binary representation of the provided byte. |
static java.lang.String |
byteToHex(byte b)
Retrieves a string representation of the provided byte in hexadecimal. |
static java.lang.String |
byteToLowerHex(byte b)
Retrieves a string representation of the provided byte in hexadecimal. |
static void |
checkOnlyOneArgPresent(Argument... args)
Checks that no more that one of a set of arguments is present. |
static java.lang.String |
collectionToString(java.util.Collection<?> collection,
java.lang.String separator)
Creates a string representation of the elements in the collection separated by separator . |
static int |
compare(byte[] a,
byte[] a2)
Compare two byte arrays for order. |
static Entry |
createEntry(DN dn)
Creates a new, blank entry with the given DN. |
static int |
exec(java.lang.String command,
java.lang.String[] args,
java.io.File workingDirectory,
java.util.Map<java.lang.String,java.lang.String> environment,
java.util.List<java.lang.String> output)
Executes the specified command on the system and captures its output. |
static int |
filterExitCode(int exitCode)
Filters the provided value to ensure that it is appropriate for use as an exit code. |
static java.lang.String |
formatDateTimeString(java.util.Date date)
Formats a Date to String representation in "yyyyMMddHHmmss'Z'". |
static java.lang.String |
getBacktrace()
Retrieves a backtrace for the current thread consisting only of filenames and line numbers that may be useful in debugging the origin of problems that should not have happened. |
static java.lang.String |
getBacktrace(java.lang.Throwable t)
Retrieves a backtrace for the provided exception consisting of only filenames and line numbers that may be useful in debugging the origin of problems. |
static byte[] |
getBytes(char[] chars)
Construct a byte array containing the UTF-8 encoding of the provided char array. |
static byte[] |
getBytes(java.lang.String s)
Construct a byte array containing the UTF-8 encoding of the provided string. |
static Message |
getExceptionMessage(java.lang.Throwable t)
Retrieves the best human-readable message for the provided exception. |
static java.io.File |
getFileForPath(java.lang.String path)
Retrieves a File object corresponding to the specified path. |
static byte[] |
hexStringToByteArray(java.lang.String hexString)
Converts the provided hexadecimal string to a byte array. |
static boolean |
isAddressInUse(java.net.InetAddress address,
int port,
boolean allowReuse)
Indicates whether the provided TCP address is already in use. |
static boolean |
isAlpha(char c)
Indicates whether the provided character is an ASCII alphabetic character. |
static boolean |
isDigit(char c)
Indicates whether the provided character is a numeric digit. |
static boolean |
isEmailAddress(java.lang.String addr)
Indicates whether or not a string represents a syntactically correct email address. |
static boolean |
isHexDigit(byte b)
Indicates whether the provided byte represents a hexadecimal digit. |
static boolean |
isHexDigit(char c)
Indicates whether the provided character is a hexadecimal digit. |
static boolean |
isRelativePath(java.lang.String path)
Indicates whether the provided path refers to a relative path rather than an absolute path. |
static boolean |
isValidSchemaElement(java.lang.String element,
int startPos,
int endPos,
MessageBuilder invalidReason)
Indicates whether the provided string contains a name or OID for a schema element like an attribute type or objectclass. |
static boolean |
listsAreEqual(java.util.List<?> list1,
java.util.List<?> list2)
Indicates whether the two array lists are equal. |
static java.lang.String[] |
listToArray(java.util.List<java.lang.String> stringList)
Retrieves a string array containing the contents of the provided list of strings. |
static java.lang.String |
listToString(java.util.List<?> list,
java.lang.String separator)
Creates a string representation of the elements in the list separated by separator . |
static boolean |
mayUseExec()
Indicates whether the use of the exec method will be allowed on this system. |
static void |
moveFile(java.io.File fileToMove,
java.io.File targetDirectory)
Moves the indicated file to the specified directory by creating a new file in the target directory, copying the contents of the existing file, and removing the existing file. |
static boolean |
needsBase64Encoding(byte[] valueBytes)
Indicates whether the provided value needs to be base64-encoded if it is represented in LDIF form. |
static boolean |
needsBase64Encoding(java.lang.String valueString)
Indicates whether the provided value needs to be base64-encoded if it is represented in LDIF form. |
static boolean |
objectsAreEqual(java.lang.Object o1,
java.lang.Object o2)
Return true if and only if o1 and o2 are both null or o1.equals(o2). |
static java.util.Date |
parseDateTimeString(java.lang.String timeStr)
Converts a string representing a time in "yyyyMMddHHmmss.SSS'Z'" or "yyyyMMddHHmmss" to a Date . |
static boolean |
recursiveDelete(java.io.File file)
Attempts to delete the specified file or directory. |
static void |
renameFile(java.io.File fileToRename,
java.io.File target)
Renames the source file to the target file. |
static Message |
secondsToTimeString(int numSeconds)
Retrieves a user-friendly string that indicates the length of time (in days, hours, minutes, and seconds) in the specified number of seconds. |
static void |
stackTraceToSingleLineString(java.lang.StringBuilder buffer,
java.lang.Throwable t)
Appends a single-line string representation of the provided exception to the given buffer. |
static java.lang.String |
stackTraceToSingleLineString(java.lang.Throwable t)
Retrieves a stack trace from the provided exception as a single-line string. |
static void |
stackTraceToString(java.lang.StringBuilder buffer,
java.lang.Throwable t)
Appends a string representation of the stack trace for the provided exception to the given buffer. |
static java.lang.String |
stackTraceToString(java.lang.Throwable t)
Retrieves a string representation of the stack trace for the provided exception. |
static void |
toLowerCase(byte[] b,
java.lang.StringBuilder buffer,
boolean trim)
Appends a lowercase string representation of the contents of the given byte array to the provided buffer, optionally trimming leading and trailing spaces. |
static java.lang.String |
toLowerCase(java.lang.String s)
Retrieves a lowercase representation of the given string. |
static void |
toLowerCase(java.lang.String s,
java.lang.StringBuilder buffer)
Appends a lowercase representation of the given string to the provided buffer. |
static java.lang.StringBuilder |
toRFC3641StringValue(java.lang.StringBuilder builder,
java.lang.String string)
Append a string to a string builder, escaping any double quotes according to the StringValue production in RFC 3641. |
static void |
toUpperCase(byte[] b,
java.lang.StringBuilder buffer,
boolean trim)
Appends an uppercase string representation of the contents of the given byte array to the provided buffer, optionally trimming leading and trailing spaces. |
static java.lang.String |
toUpperCase(java.lang.String s)
Retrieves an uppercase representation of the given string. |
static void |
toUpperCase(java.lang.String s,
java.lang.StringBuilder buffer)
Appends an uppercase representation of the given string to the provided buffer. |
static java.lang.String |
wrapText(Message message,
int width)
Inserts line breaks into the provided buffer to wrap text at no more than the specified column width. |
static java.lang.String |
wrapText(Message message,
int width,
int indent)
Inserts line breaks into the provided buffer to wrap text at no more than the specified column width. |
static java.lang.String |
wrapText(java.lang.String text,
int width)
Inserts line breaks into the provided buffer to wrap text at no more than the specified column width. |
static java.lang.String |
wrapText(java.lang.String text,
int width,
int indent)
Inserts line breaks into the provided buffer to wrap text at no more than the specified column width. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Method Detail |
---|
public static byte[] getBytes(java.lang.String s)
String.getBytes(String)
for ASCII strings.
s
- The string to convert to a UTF-8 byte array.
public static byte[] getBytes(char[] chars)
char
array.
chars
- The character array to convert to a UTF-8 byte array.
char
array.public static java.lang.String byteToHex(byte b)
b
- The byte for which to retrieve the hexadecimal string
representation.
public static java.lang.String byteToLowerHex(byte b)
b
- The byte for which to retrieve the hexadecimal string
representation.
public static char byteToASCII(byte b)
b
- The byte for which to retrieve the printable ASCII
representation.
public static java.lang.String bytesToHexNoSpace(byte[] b)
b
- The byte array containing the data.
public static java.lang.String bytesToHex(byte[] b)
b
- The byte array containing the data.
public static java.lang.String bytesToColonDelimitedHex(byte[] b)
b
- The byte array containing the data.
public static java.lang.String bytesToHex(java.nio.ByteBuffer b)
b
- The byte buffer containing the data.
public static void byteArrayToHexPlusAscii(java.lang.StringBuilder buffer, byte[] b, int indent)
buffer
- The buffer to which the information is to be appended.b
- The byte array containing the data to write.indent
- The number of spaces to indent the output.public static void byteArrayToHexPlusAscii(java.lang.StringBuilder buffer, java.nio.ByteBuffer b, int indent)
buffer
- The buffer to which the information is to be appended.b
- The byte buffer containing the data to write.
The data from the position to the limit is written.indent
- The number of spaces to indent the output.public static java.lang.String byteToBinary(byte b)
b
- The byte for which to retrieve the binary representation.
public static int compare(byte[] a, byte[] a2)
a
- The first byte array to be compared.a2
- The second byte array to be compared.
public static boolean listsAreEqual(java.util.List<?> list1, java.util.List<?> list2)
list1
- The first list for which to make the determination.list2
- The second list for which to make the determination.
true
if the two array lists are equal, or
false
if they are not.public static boolean objectsAreEqual(java.lang.Object o1, java.lang.Object o2)
o1
- the first object to compareo2
- the second object to compare
public static Message getExceptionMessage(java.lang.Throwable t)
t
- The Throwable
object for which to retrieve the message.
public static java.lang.String stackTraceToSingleLineString(java.lang.Throwable t)
t
- The exception for which to retrieve the stack trace.
public static void stackTraceToSingleLineString(java.lang.StringBuilder buffer, java.lang.Throwable t)
buffer
- The buffer to which the information is to be appended.t
- The exception for which to retrieve the stack trace.public static java.lang.String stackTraceToString(java.lang.Throwable t)
t
- The exception for which to retrieve the stack trace.
public static void stackTraceToString(java.lang.StringBuilder buffer, java.lang.Throwable t)
buffer
- The buffer to which the information is to be appended.t
- The exception for which to retrieve the stack trace.public static java.lang.String getBacktrace()
public static java.lang.String getBacktrace(java.lang.Throwable t)
getBacktrace
without any arguments if an exception has already
been thrown.
t
- The exception for which to obtain the backtrace.
public static boolean isDigit(char c)
c
- The character for which to make the determination.
true
if the provided character represents a numeric
digit, or false
if not.public static boolean isAlpha(char c)
c
- The character for which to make the determination.
true
if the provided value is an uppercase or
lowercase ASCII alphabetic character, or false
if it
is not.public static boolean isHexDigit(char c)
c
- The character for which to make the determination.
true
if the provided character represents a
hexadecimal digit, or false
if not.public static boolean isHexDigit(byte b)
b
- The byte for which to make the determination.
true
if the provided byte represents a hexadecimal
digit, or false
if not.public static byte[] hexStringToByteArray(java.lang.String hexString) throws java.text.ParseException
hexString
- The hexadecimal string to convert to a byte array.
java.text.ParseException
- If the provided string contains invalid
hexadecimal digits or does not contain an even
number of digits.public static boolean needsBase64Encoding(byte[] valueBytes)
valueBytes
- The binary representation of the attribute value for
which to make the determination.
true
if the value needs to be base64-encoded if it is
represented in LDIF form, or false
if not.public static boolean needsBase64Encoding(java.lang.String valueString)
valueString
- The string representation of the attribute value for
which to make the determination.
true
if the value needs to be base64-encoded if it is
represented in LDIF form, or false
if not.public static boolean mayUseExec()
true
if the use of the exec method should be allowed,
or false
if it should not be allowed.public static int exec(java.lang.String command, java.lang.String[] args, java.io.File workingDirectory, java.util.Map<java.lang.String,java.lang.String> environment, java.util.List<java.lang.String> output) throws java.io.IOException, java.lang.SecurityException, java.lang.InterruptedException
command
- The command to execute.args
- The set of arguments to provide to the command.workingDirectory
- The working directory to use for the command, or
null
if the default directory
should be used.environment
- The set of environment variables that should be
set when executing the command, or
null
if none are needed.output
- The output generated by the command while it was
running. This will include both standard
output and standard error. It may be
null
if the output does not need to
be captured.
java.io.IOException
- If an I/O problem occurs while trying to execute the
command.
java.lang.SecurityException
- If the security policy will not allow the
command to be executed.
java.lang.InterruptedException
- If the current thread is interrupted by
another thread while it is waiting, then
the wait is ended and an InterruptedException
is thrown.public static boolean isValidSchemaElement(java.lang.String element, int startPos, int endPos, MessageBuilder invalidReason)
element
- The string containing the substring for which to
make the determination.startPos
- The position of the first character that is to be
checked.endPos
- The position of the first character after the start
position that is not to be checked.invalidReason
- The buffer to which the invalid reason is to be
appended if a problem is found.
true
if the provided string contains a valid name or
OID for a schema element, or false
if it does not.public static boolean isAddressInUse(java.net.InetAddress address, int port, boolean allowReuse)
address
- IP address of the TCP address for which to make
the determination.port
- TCP port number of the TCP address for which to
make the determination.allowReuse
- Whether or not TCP address reuse is allowed when
making the determination.
true
if the provided TCP address is already in
use, or false
otherwise.public static java.lang.String toLowerCase(java.lang.String s)
s
- The string for which to obtain the lowercase representation.
public static void toLowerCase(java.lang.String s, java.lang.StringBuilder buffer)
s
- The string for which to obtain the lowercase
representation.buffer
- The buffer to which the lowercase form of the string should
be appended.public static void toLowerCase(byte[] b, java.lang.StringBuilder buffer, boolean trim)
b
- The byte array for which to obtain the lowercase string
representation.buffer
- The buffer to which the lowercase form of the string should
be appended.trim
- Indicates whether leading and trailing spaces should be
omitted from the string representation.public static java.lang.String toUpperCase(java.lang.String s)
s
- The string for which to obtain the uppercase representation.
public static void toUpperCase(java.lang.String s, java.lang.StringBuilder buffer)
s
- The string for which to obtain the uppercase
representation.buffer
- The buffer to which the uppercase form of the string should
be appended.public static void toUpperCase(byte[] b, java.lang.StringBuilder buffer, boolean trim)
b
- The byte array for which to obtain the uppercase string
representation.buffer
- The buffer to which the uppercase form of the string should
be appended.trim
- Indicates whether leading and trailing spaces should be
omitted from the string representation.public static java.lang.StringBuilder toRFC3641StringValue(java.lang.StringBuilder builder, java.lang.String string)
In RFC 3641 the StringValue production looks like this:
StringValue = dquote *SafeUTF8Character dquote dquote = %x22 ; " (double quote) SafeUTF8Character = %x00-21 / %x23-7F / ; ASCII minus dquote dquote dquote / ; escaped double quote %xC0-DF %x80-BF / ; 2 byte UTF-8 character %xE0-EF 2(%x80-BF) / ; 3 byte UTF-8 character %xF0-F7 3(%x80-BF) ; 4 byte UTF-8 character
That is, strings are surrounded by double-quotes and any internal double-quotes are doubled up.
builder
- The string builder.string
- The string to escape and append.
public static java.lang.String[] listToArray(java.util.List<java.lang.String> stringList)
stringList
- The string list to convert to an array.
public static java.lang.String listToString(java.util.List<?> list, java.lang.String separator)
list
separated by separator
.
list
- the list to printseparator
- to use between elements
public static java.lang.String collectionToString(java.util.Collection<?> collection, java.lang.String separator)
collection
separated by separator
.
collection
- to printseparator
- to use between elements
public static java.util.ArrayList<java.lang.String> arrayToList(java.lang.String[] stringArray)
stringArray
- The string array to convert to an array list.
public static boolean recursiveDelete(java.io.File file)
file
- The file or directory to be removed.
true
if the specified file and any subordinates are
all successfully removed, or false
if at least one
element in the subtree could not be removed.public static void moveFile(java.io.File fileToMove, java.io.File targetDirectory) throws java.io.IOException
fileToMove
- The file to move to the target directory.targetDirectory
- The directory into which the file should be moved.
java.io.IOException
- If a problem occurs while attempting to move the
file.public static void renameFile(java.io.File fileToRename, java.io.File target) throws java.io.IOException
fileToRename
- The file to rename.target
- The file to which fileToRename
will be
moved.
java.io.IOException
- If a problem occurs while attempting to rename the
file. On the Windows platform, this typically
indicates that the file is in use by this or another
application.public static boolean isRelativePath(java.lang.String path)
path
- The path string for which to make the determination.
true
if the provided path is relative, or
false
if it is absolute.public static java.io.File getFileForPath(java.lang.String path)
File
object corresponding to the specified path.
If the given path is an absolute path, then it will be used. If the path
is relative, then it will be interpreted as if it were relative to the
Directory Server root.
path
- The path string to be retrieved as a File
File
object that corresponds to the specified path.public static Entry createEntry(DN dn)
dn
- The DN to use for the entry.
public static Message secondsToTimeString(int numSeconds)
numSeconds
- The number of seconds to be converted to a more
user-friendly value.
public static java.lang.String wrapText(Message message, int width)
message
- The message to be wrapped.width
- The maximum number of characters to allow on a line if there
is a suitable breaking point.
public static java.lang.String wrapText(java.lang.String text, int width)
text
- The text to be wrapped.width
- The maximum number of characters to allow on a line if there
is a suitable breaking point.
public static java.lang.String wrapText(Message message, int width, int indent)
message
- The message to be wrapped.width
- The maximum number of characters to allow on a line if
there is a suitable breaking point (including any
indentation).indent
- The number of columns to indent each line.
public static java.lang.String wrapText(java.lang.String text, int width, int indent)
text
- The text to be wrapped.width
- The maximum number of characters to allow on a line if
there is a suitable breaking point (including any
indentation).indent
- The number of columns to indent each line.
public static int filterExitCode(int exitCode)
exitCode
- The exit code value to be processed.
public static void checkOnlyOneArgPresent(Argument... args) throws ArgumentException
args
- to test for the presence of more than one
ArgumentException
- if more than one of args
is
present and containing an error message identifying the
arguments in violationpublic static java.util.Date parseDateTimeString(java.lang.String timeStr) throws java.text.ParseException
Date
.
timeStr
- string formatted appropriately
timeStr
is null
java.text.ParseException
- if there was a problem converting the string to
a Date
.public static java.lang.String formatDateTimeString(java.util.Date date)
date
- to format; null if date
is null
public static boolean isEmailAddress(java.lang.String addr)
addr
- to validate
true
indicates that the string is a
syntactically correct email address
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |