Package org.apache.jorphan.util
Class JOrphanUtils
java.lang.Object
org.apache.jorphan.util.JOrphanUtils
This class contains frequently-used static utility methods.
-
Method Summary
Modifier and TypeMethodDescriptionstatic byte[]
baToHexBytes
(byte[] ba) Convert binary byte array to hex string.static String
baToHexString
(byte[] ba) Convert binary byte array to hex string.static String
baToHexString
(byte[] ba, char separator) Convert binary byte array to hex string.static String
booleanToSTRING
(boolean value) Convert a boolean to its upper case string representation.static void
Close a Closeable with no error thrownstatic void
closeQuietly
(ServerSocket sock) close a Socket with no error thrownstatic void
closeQuietly
(Socket sock) close a Socket with no error thrownstatic void
displayThreads
(boolean includeDaemons) Display currently running threads on system.out This may be expensive to run.static byte[]
getByteArraySlice
(byte[] array, int begin, int end) Returns a slice of a byte array.static boolean
Check that value is empty (""), null or whitespace only.static boolean
isXML
(byte[] target) Detects if some content starts with the standard XML prefix.static StringBuilder
leftAlign
(StringBuilder in, int len) Left aligns some text in a StringBuilder N.B. modifies the input bufferstatic String
nullifyIfEmptyTrimmed
(String input) Returns null if input is empty, null or contains spacesstatic int
read
(InputStream is, byte[] buffer, int offset, int length) Read as much as possible into buffer.static String
replaceAllChars
(String source, char search, String replace) Version of String.replaceAll() for JDK1.3 See below for another version which replaces strings rather than charsstatic String
replaceFirst
(String source, String search, String replace) Simple-minded String.replace() for JDK1.3 Should probably be recoded...static StringBuilder
rightAlign
(StringBuilder in, int len) Right aligns some text in a StringBuilder N.B. modifies the input bufferstatic String[]
static String[]
This is _almost_ equivalent to the String.split method in JDK 1.4.static String[]
Takes a String and a tokenizer character string, and returns a new array of strings of the string split by the tokenizer character(s).static boolean
startsWith
(byte[] target, byte[] search, int offset) Check if a byte array starts with the given byte array.static String
substitute
(String input, String pattern, String sub) Replace all patterns in a Stringstatic String
Trim a string by the tokens provided.static void
write
(byte[] data, OutputStream output) Write data to an output stream in chunks with a maximum size of 4K.
-
Method Details
-
split
This is _almost_ equivalent to the String.split method in JDK 1.4. It is here to enable us to support earlier JDKs. Note that unlike JDK1.4 split(), it optionally ignores leading split Characters, and the splitChar parameter is not a Regular expressionThis piece of code used to be part of JMeterUtils, but was moved here because some JOrphan classes use it too.
- Parameters:
splittee
- String to be splitsplitChar
- Character(s) to split the string on, these are treated as a single unittruncate
- Should adjacent and leading/trailing splitChars be removed?- Returns:
- Array of all the tokens; empty if the input string is null or the splitChar is null
- See Also:
-
split
-
split
Takes a String and a tokenizer character string, and returns a new array of strings of the string split by the tokenizer character(s). Trailing delimiters are significant (unless the default = null)- Parameters:
splittee
- String to be split.delims
- Delimiter character(s) to split the string ondef
- Default value to place between two split chars that have nothing between them. If null, then ignore omitted elements.- Returns:
- Array of all the tokens.
- Throws:
NullPointerException
- if splittee or delims are null- See Also:
-
rightAlign
Right aligns some text in a StringBuilder N.B. modifies the input buffer- Parameters:
in
- StringBuilder containing some textlen
- output length desired- Returns:
- input StringBuilder, with leading spaces
-
leftAlign
Left aligns some text in a StringBuilder N.B. modifies the input buffer- Parameters:
in
- StringBuilder containing some textlen
- output length desired- Returns:
- input StringBuilder, with trailing spaces
-
booleanToSTRING
Convert a boolean to its upper case string representation. Equivalent to Boolean.valueOf(boolean).toString().toUpperCase().- Parameters:
value
- boolean to convert- Returns:
- "TRUE" or "FALSE"
-
replaceFirst
Simple-minded String.replace() for JDK1.3 Should probably be recoded...- Parameters:
source
- input stringsearch
- string to look for (no regular expressions)replace
- string to replace the search string- Returns:
- the output string
-
replaceAllChars
Version of String.replaceAll() for JDK1.3 See below for another version which replaces strings rather than chars- Parameters:
source
- input stringsearch
- char to look for (no regular expressions)replace
- string to replace the search string- Returns:
- the output string
-
substitute
Replace all patterns in a String- Parameters:
input
- - string to be transformedpattern
- - pattern to replacesub
- - replacement- Returns:
- the updated string
- See Also:
-
trim
Trim a string by the tokens provided.- Parameters:
input
- string to trimdelims
- list of delimiters- Returns:
- input trimmed at the first delimiter
-
getByteArraySlice
public static byte[] getByteArraySlice(byte[] array, int begin, int end) Returns a slice of a byte array. TODO - add bounds checking?- Parameters:
array
- - input arraybegin
- - start of sliceend
- - end of slice- Returns:
- slice from the input array
-
closeQuietly
Close a Closeable with no error thrown- Parameters:
cl
- - Closeable (may be null)
-
closeQuietly
close a Socket with no error thrown- Parameters:
sock
- - Socket (may be null)
-
closeQuietly
close a Socket with no error thrown- Parameters:
sock
- - ServerSocket (may be null)
-
startsWith
public static boolean startsWith(byte[] target, byte[] search, int offset) Check if a byte array starts with the given byte array.- Parameters:
target
- array to scansearch
- array to search foroffset
- starting offset (>=0)- Returns:
- true if the search array matches the target at the current offset
- See Also:
-
isXML
public static boolean isXML(byte[] target) Detects if some content starts with the standard XML prefix.- Parameters:
target
- the content to check- Returns:
- true if the document starts with the standard XML prefix.
-
baToHexString
Convert binary byte array to hex string.- Parameters:
ba
- input binary byte array- Returns:
- hex representation of binary input
-
baToHexString
Convert binary byte array to hex string.- Parameters:
ba
- input binary byte arrayseparator
- the separator to be added between pairs of hex digits- Returns:
- hex representation of binary input
-
baToHexBytes
public static byte[] baToHexBytes(byte[] ba) Convert binary byte array to hex string.- Parameters:
ba
- input binary byte array- Returns:
- hex representation of binary input
-
read
Read as much as possible into buffer.- Parameters:
is
- the stream to read frombuffer
- output bufferoffset
- offset into bufferlength
- number of bytes to read- Returns:
- the number of bytes actually read
- Throws:
IOException
- if some I/O errors occur
-
displayThreads
public static void displayThreads(boolean includeDaemons) Display currently running threads on system.out This may be expensive to run. Mainly designed for use at the end of a non-GUI test to check for threads that might prevent the JVM from exitting.- Parameters:
includeDaemons
- whether to include daemon threads or not.
-
nullifyIfEmptyTrimmed
Returns null if input is empty, null or contains spaces- Parameters:
input
- String- Returns:
- String
-
isBlank
Check that value is empty (""), null or whitespace only.- Parameters:
value
- Value- Returns:
- true if the String is not empty (""), not null and not whitespace only.
-
write
Write data to an output stream in chunks with a maximum size of 4K. This is to avoid OutOfMemory issues if the data buffer is very large and the JVM needs to copy the buffer for use by native code.- Parameters:
data
- the buffer to be writtenoutput
- the output stream to use- Throws:
IOException
- if there is a problem writing the data
-