Class GrouperClientCommonUtils
- Direct Known Subclasses:
GrouperClientUtils
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
The results of executing a command. -
Field Summary
Modifier and TypeFieldDescriptionstatic final String
string format of datesstatic final String
format including minutes and seconds: yyyy/MM/dd HH:mm:ssstatic final String
format including minutes and seconds: yyyyMMdd HH:mm:ssstatic final int
The name says it all.static final String
The empty String""
.static final Object[]
An empty immutableObject
array.static final String[]
An empty immutableString
array.static final int
Represents a failed index search.static final String
static final int
special number when a number is not foundstatic final long
The number of bytes in a gigabyte.static final long
The number of bytes in a kilobyte.static final long
The number of bytes in a megabyte.static final String
format on screen of config for milestone: 2015-04-22 00:00:00.0static final String
format on screen of config for milestone: yyyy/MM/dd HH:mm:ss.SSSstatic final String
format on screen of config for milestone: yyyyMMdd HH:mm:ss.SSS -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic String
abbreviate
(String str, int maxWidth) Abbreviates a String using ellipses.static String
abbreviate
(String str, int offset, int maxWidth) Abbreviates a String using ellipses.static String
absolutePath
(File file) absolute path null safestatic <T> void
addIfNotThere
(Collection<T> list, Collection<T> listToAdd) add each element of listToAdd if it is not already in liststatic void
append
(StringBuilder result, String separatorIfResultNotEmpty, String stringToAppend) append and maybe put a separator in therestatic String
return the arg after the argBefore, or null if not there, or exception if argBefore is not foundstatic String
from a command line arg, get the key.add an option: --whatever=val to a map of options where --whatever is key, and val is valuestatic Boolean
get the value from the argMapstatic boolean
argMapBoolean
(Map<String, String> argMap, Map<String, String> argMapNotUsed, String key, boolean required, boolean defaultValue) get the value from the argMap, throw exception if not there and requiredargMapFileList
(Map<String, String> argMap, Map<String, String> argMapNotUsed, String key, boolean required) get the list from comma separated from the argMap, throw exception if not there and requiredstatic Integer
argMapInteger
(Map<String, String> argMap, Map<String, String> argMapNotUsed, String key, boolean required, Integer defaultValue) get the value from the argMap, throw exception if not there and requiredargMapList
(Map<String, String> argMap, Map<String, String> argMapNotUsed, String key, boolean required) get the list from comma separated from the argMap, throw exception if not there and requiredargMapSet
(Map<String, String> argMap, Map<String, String> argMapNotUsed, String key, boolean required) get the set from comma separated from the argMap, throw exception if not there and requiredstatic String
argMapString
(Map<String, String> argMap, Map<String, String> argMapNotUsed, String key, boolean required) get the value from the argMap, throw exception if not there and requiredstatic Timestamp
get the value from the argMap, throw exception if not there and requiredstatic String
from a command line arg, get the key.static void
If false, throw an assertException, and give a reasonstatic void
assignField
(Class theClass, Object invokeOn, String fieldName, Object dataToAssign, boolean callOnSupers, boolean overrideSecurity, boolean typeCast, Class<? extends Annotation> annotationWithValueOverride) assign data to a fieldstatic void
assignField
(Class theClass, Object invokeOn, String fieldName, Object dataToAssign, Class<? extends Annotation> annotationWithValueOverride) assign data to a field.static void
assignField
(Object invokeOn, String fieldName, Object dataToAssign) assign data to a field.static void
assignField
(Field field, Object invokeOn, Object dataToAssign, boolean overrideSecurity, boolean typeCast) assign data to a fieldstatic void
assignField
(Field field, Object invokeOn, Object dataToAssign, boolean overrideSecurity, boolean typeCast, Class<? extends Annotation> annotationWithValueOverride) assign data to a fieldstatic void
assignSetter
(Object invokeOn, String fieldName, Object dataToAssign, boolean typeCast) assign data to a setter.static <T> List<T>
batchList
(Collection<T> collection, int batchSize, int batchIndex) retrieve a batch by 0 index.static int
batchNumberOfBatches
(int count, int batchSize) Deprecated.use batchNumberOfBatches(Collection<?> collection, int batchSize, boolean haveAtLeastOne)static int
batchNumberOfBatches
(int count, int batchSize, boolean haveAtLeastOne) If batching this is the number of batchesstatic int
batchNumberOfBatches
(Collection<?> collection, int batchSize) Deprecated.use batchNumberOfBatches(Collection<?> collection, int batchSize, boolean haveAtLeastOne)static int
batchNumberOfBatches
(Collection<?> collection, int batchSize, boolean haveAtLeastOne) If batching this is the number of batches, will return at least 1static BigDecimal
bigDecimalObjectValue
(Object input) Convert an object to a byte, allow nullsstatic Boolean
booleanObjectValue
(Object object) get the Boolean value for an objectstatic boolean
booleanValue
(Object object) get the boolean value for an object, cant be null or blankstatic boolean
booleanValue
(Object object, boolean defaultBoolean) get the boolean value for an objectstatic String
byteCountToDisplaySize
(long size) Returns a human-readable version of the file size (original is in bytes).static Byte
byteObjectValue
(Object input) Convert an object to a byte, allow nullsstatic byte
convert an object to a bytestatic Object
callMethod
(Class theClass, Object invokeOn, String methodName) helper method for calling a method with no params (could be in superclass)static Object
callMethod
(Class theClass, Object invokeOn, String methodName, Object paramTypesOrArrayOrList, Object paramsOrListOrArray) helper method for calling a method (could be in superclass)static Object
callMethod
(Class theClass, Object invokeOn, String methodName, Object paramTypesOrArrayOrList, Object paramsOrListOrArray, boolean callOnSupers) helper method for calling a methodstatic Object
callMethod
(Class theClass, Object invokeOn, String methodName, Object paramTypesOrArrayOrList, Object paramsOrListOrArray, boolean callOnSupers, boolean overrideSecurity) helper method for calling a methodstatic Object
callMethod
(Class theClass, String methodName) helper method for calling a static method up the stack.static Object
callMethod
(Class theClass, String methodName, boolean callOnSupers) helper method for calling a static method with no paramsstatic Object
callMethod
(Class theClass, String methodName, Object paramTypesOrArrayOrList, Object paramsOrListOrArray) helper method for calling a static method up the stackstatic Object
callMethod
(Object invokeOn, String methodName) helper method for calling a method with no params (could be in superclass), will override securitystatic String
capitalize
(String str) Capitalizes a String changing the first letter to title case as perCharacter.toTitleCase(char)
.static Character
charObjectValue
(Object input) get the Character wrapper value for the inputstatic char
convert an object to a charstatic String
classesString
(Object object) print the simple names of a list of classesstatic ClassLoader
fast class loaderstatic String
null safe classname method, gets the unenhanced namestatic String
classNameCollection
(Object object) null safe classname method, max out at 20static <T> T
clone an object, assign primitives, Strings, maps of string attributes.static <T> void
cloneFields
(T object, T result, Set<String> fieldsToClone) clone an object, assign primitives, Strings, maps of string attributes.static <T> T
cloneValue
(T value) helper method to clone the value of a field.static void
closeQuietly
(InputStream input) Unconditionally close anInputStream
.static void
closeQuietly
(OutputStream output) Unconditionally close anOutputStream
.static void
closeQuietly
(Reader input) Unconditionally close anReader
.static void
closeQuietly
(Writer writer) close a writer quietlystatic void
closeQuietly
(Connection connection) close a connection null safe and dont throw exceptionstatic void
closeQuietly
(ResultSet resultSet) close a resultSet null safe and dont throw exceptionstatic void
closeQuietly
(Statement statement) close a statement null safe and dont throw exceptioncompare two objects, compare primitives, Strings, maps of string attributes.static URL
computeUrl
(String resourceName, boolean canBeNull) compute a url of a resourcestatic <T> T
construct an instance by reflectionstatic boolean
Checks if the object is in the given array.static boolean
Checks if String contains a search character, handlingnull
.static boolean
Checks if String contains a search String, handlingnull
.static String
convertLongToChar
(long theLong) this method takes a long (less than 62) and converts it to a 1 character string (a-z, A-Z, 0-9)static String
convertLongToCharSmall
(long theLong) this method takes a long (less than 36) and converts it to a 1 character string (A-Z, 0-9)static String
convertLongToString
(long theLong) convert a long to a string by converting it to base 62 (26 lower, 26 upper, 10 digits)static String
convertLongToStringSmall
(long theLong) convert a long to a string by converting it to base 36 (26 upper, 10 digits)static void
convert an exception to a runtime exceptionstatic String
convertUrlToDriverClassIfNeeded
(String connectionUrl, String driverClassName) if there is no driver class specified, then try to derive it from the URLstatic void
copy a file to a new filestatic int
copy
(InputStream input, OutputStream output) Copy bytes from anInputStream
to anOutputStream
.static void
copy
(InputStream input, Writer output) Copy bytes from anInputStream
to chars on aWriter
using the default character encoding of the platform.static void
copy
(InputStream input, Writer output, String encoding) Copy and convert bytes from anInputStream
to chars on aWriter
, using the specified encoding.static int
Copy chars from aReader
to aWriter
.static long
copyLarge
(InputStream input, OutputStream output) Copy bytes from a large (over 2GB)InputStream
to anOutputStream
.static void
createParentDirectories
(File file) Create the parent directories for a file if they do not already existstatic RuntimeException
createRuntimeExceptionWithMessage
(RuntimeException r1, String message) Return a new runtime exception of the same type as the given exception but with the new message.static String
dateToString
(Date date) convert a date to a string using the standard web service pattern yyyy/MM/dd HH:mm:ss.SSS Note that HH is 0-23static Date
Convert an object to a java.util.Date.static void
add a value to a log entrystatic String
defaultIfBlank
(String string, String defaultStringIfBlank) return the string or the other if the first is blankstatic String
defaultIfEmpty
(String str, String defaultStr) Returns either the passed in String, or if the String is empty ornull
, the value ofdefaultStr
.static <T> T
defaultIfNull
(T theValue, T defaultIfTheValueIsNull) genericized method to see if first is null, if so then return second, else first.static String
defaultString
(String str) Returns either the passed in String, or if the String isnull
, an empty String ("").static String
defaultString
(String str, String defaultStr) Returns either the passed in String, or if the String isnull
, the value ofdefaultStr
.static void
deleteCreateFile
(File file) delete and create a new file.static void
deleteFile
(File file) Delete a file, throw exception if cannotstatic void
deleteRecursiveDirectory
(String dirName) clear out all files recursively in a directory, including the directory itselfstatic Double
doubleObjectValue
(Object input) get the Double value of an objectstatic Double
doubleObjectValue
(Object input, boolean allowNullBlank) get the Double value of an objectstatic double
doubleValue
(Object input) get the double value of an objectstatic double
doubleValueNoError
(Object input) get the double value of an object, do not throw an exception if there is an errorstatic boolean
endsWith
(StringBuilder str, String end) static <E extends Enum<?>>
EenumValueOfIgnoreCase
(Class<E> theEnumClass, String string, boolean exceptionOnNotFound) do a case-insensitive matchingstatic boolean
Compares two objects for equality, where either one or both objects may benull
.static boolean
null safe string comparestatic boolean
equalsIgnoreCase
(String str1, String str2) equalsignorecasestatic String
escapeUrlDecode
(String string) unescape url chars (e.g.static String
escapeUrlEncode
(String string) escape url chars (e.g.static void
execCommand
(String command) This will execute a command, and split spaces for args (might not be what you want if you are using quotes)execCommand
(String[] arguments) This will execute a command (with args).execCommand
(String[] arguments, boolean exceptionOnExitValueNeZero) This will execute a command (with args).static String
extensionFromName
(String name) get the extension from name.static Field
get a field object for a class, potentially in superclassesfieldNames
(Class theClass, Class fieldType, boolean includeStaticFields) return a set of Strings for a class and type.fieldNames
(Class theClass, Class superclassToStopAt, Class<?> fieldType, boolean includeSuperclassToStopAt, boolean includeStaticFields, boolean includeFinalFields) get all field names from a class, including superclasses (if specified)fieldNames
(Class theClass, Class superclassToStopAt, Class<?> fieldType, boolean includeSuperclassToStopAt, boolean includeStaticFields, boolean includeFinalFields, Class<? extends Annotation> markerAnnotationToIngore) get all field names from a class, including superclasses (if specified).fieldNames
(Class theClass, Class superclassToStopAt, Class<? extends Annotation> markerAnnotationToIngore) get all field names from a class, including superclasses (if specified) (up to and including the specified superclass).fields
(Class theClass, Class superclassToStopAt, Class<? extends Annotation> markerAnnotation, boolean includeAnnotation) get all fields from a class, including superclasses (if specified) (up to and including the specified superclass).fields
(Class theClass, Class superclassToStopAt, Class fieldType, boolean includeSuperclassToStopAt, boolean includeStaticFields, boolean includeFinalFields, Class<? extends Annotation> markerAnnotation, boolean includeAnnotation) get all fields from a class, including superclasses (if specified)static Object
fieldValue
(Class theClass, Object invokeOn, String fieldName, boolean callOnSupers, boolean overrideSecurity) find out a field valuestatic Object
fieldValue
(Object invokeOn, String fieldName) find out a field value (invoke on supers, override security)static Object
fieldValue
(Field field, Object invokeOn) get the value of a field, override security if needbestatic Object
fieldValue
(Field field, Object invokeOn, boolean overrideSecurity) get the value of a fieldstatic String
fileCanonicalPath
(File file) get canonical path of filestatic File
fileFromResourceName
(String resourceName) get a file name from a resource namestatic InputStream
fileOrClasspathInputstream
(String typeAndLocation, String logHint) file or classpath locationstatic Float
floatObjectValue
(Object input, boolean allowNullBlank) get the Float value of an objectstatic float
floatValue
(Object input) get the float value of an objectstatic float
floatValueNoError
(Object input) get the float value of an object, do not throw an exception if there is an errorstatic Class
Returns the class object.static Object
Get a specific index of an array or collection (note for collections and iterating, it is more efficient to get an iterator and iteratestatic Throwable
Introspects theThrowable
to obtain the cause.static Throwable
Introspects theThrowable
to obtain the cause.static String
getFullStackTrace
(Throwable throwable) A way to get the entire nested stack-trace of an throwable.static Method
get a getter method object for a class, potentially in superclassesstatic Method
getterHelper
(Class theClass, String fieldName, String getterName, boolean callOnSupers, boolean throwExceptionIfNotFound) get a setter method object for a class, potentially in superclassesstatic String
getterNameFromPropertyName
(String propertyName) generate getBb from bbgetters
(Class theClass, Class superclassToStopAt, Class<? extends Annotation> markerAnnotation, Boolean includeAnnotation) get all getters from a class, including superclasses (if specified) (up to and including the specified superclass).static Throwable[]
getThrowables
(Throwable throwable) Returns the list ofThrowable
objects in the exception chain.static String
get the version from jar e.g.static String
grouperWsVersionConvert
(String jarVersion) static boolean
hasOption
(int options, int option) see if options have a specific option by int bitsstatic String
hostname()
get the hostname of this machinestatic char
incrementChar
(char theChar) increment a character (A-Z then 0-9)static char[]
incrementStringInt
(char[] string) Increment a string with A-Z and 0-9 (no lower case so case insensitive apps like windows IE will still work)static String
this method will indent xml or json.static int
Find the index of the given object in the array.static int
Find the index of the given object in the array starting at the given index.static boolean
injectInException
(Throwable t, String message) If we can, inject this into the exception, else return falsestatic Integer
intObjectValue
(Object input, boolean allowNullBlank) get the Integer value of an objectstatic int
convert an object to a intstatic int
convert an object to a intstatic int
intValueNoError
(Object input) get the int value of an object, do not throw an exception if there is an errorstatic Object
invokeMethod
(Method method, Object invokeOn) Safely invoke a reflection method that takes no argsstatic Object
invokeMethod
(Method method, Object invokeOn, Object paramsOrListOrArray) Safely invoke a reflection methodstatic boolean
isAscii
(char input) is ascii charstatic boolean
See if the input is null or if string, if it is empty or blank (whitespace)static boolean
Checks if a String is whitespace, empty ("") or null.static boolean
Checks if a String is empty ("") or null.static String
iserNameFromPropertyName
(String propertyName) generate getBb from bbstatic boolean
if the method name starts with get, and takes no args, and returns something, then getterstatic boolean
see if the config file seems to be mysqlstatic boolean
isNestedThrowable
(Throwable throwable) Checks whether thisThrowable
class can store a cause.static boolean
isNotBlank
(String str) static boolean
see if the config file seems to be oraclestatic boolean
isPostgres
(String connectionUrl) see if the config file seems to be postgresstatic boolean
see if a class is a scalar (not bean, not array or list, etc)static boolean
if the method name starts with get, and takes no args, and returns something, then getterstatic boolean
isSQLServer
(String connectionUrl) see if the config file seems to be sql serverstatic boolean
Checks if the Throwable class has agetCause
method.static boolean
see if we are running on windowsstatic Iterator
null safe iterator getter if the type if collectionstatic File
get a jar file from a sample classstatic File
get a jar file from a sample classstatic String
jarVersion
(Class sampleClass) get the version from the manifest of a jarstatic String
Joins the elements of the provided array into a single String containing the provided list of elements.static String
Joins the elements of the provided array into a single String containing the provided list of elements.static String
Joins the elements of the provided array into a single String containing the provided list of elements.static String
Joins the elements of the providedIterator
into a single String containing the provided elements.static String
Joins the elements of the providedIterator
into a single String containing the provided elements.static String
Left pad a String with spaces (' ').static String
Left pad a String with a specified character.static String
Left pad a String with a specified String.static int
Null safe array length or mapstatic int
lengthAscii
(String input) find the length of ascii chars (non ascii are counted as two)static Long
longObjectValue
(Object input, boolean allowNullBlank) get the Long value of an objectstatic long
convert an object to a longstatic long
convert an object to a longstatic long
longValueNoError
(Object input) get the long value of an object, do not throw an exception if there is an errorstatic void
static String
manifestProperty
(Class sampleClass, String[] propertyNames) get the version from the manifest of a jarstatic void
mapAddValue
(Map<String, Object> map, String key, int numberToAdd) in a map get a value if there and increment or set a valuestatic void
mapAddValue
(Map<String, Object> map, String key, long numberToAdd) in a map get a value if there and increment or set a valuestatic <K,
V> void mapDifferences
(Map<K, V> first, Map<K, V> second, Set<K> differences, String prefix) see if two maps are the equivalent (based on number of entries, and the equals() method of the keys and values)static <K,
V> boolean see if two maps are the equivalent (based on number of entries, and the equals() method of the keys and values)static String
mapToString
(Map map) convert a set to a string (comma separate)static String
MapToString
(Map map) Deprecated.use mapToString(map)static Method
method
(Class<?> theClass, String methodName, Object paramTypesOrArrayOrList, Class<?> superclassToStopAt, boolean includeSuperclassToStopAt, boolean isStaticOrInstance, Class<? extends Annotation> markerAnnotation, boolean includeAnnotation) get the set of methodsmethodNames
(Class<?> theClass, Class<?> superclassToStopAt, boolean includeSuperclassToStopAt, boolean includeStaticMethods) simple method to get method namesstatic void
methodsHelper
(Class<?> theClass, Class<?> superclassToStopAt, boolean includeSuperclassToStopAt, boolean includeStaticMethods, Class<? extends Annotation> markerAnnotation, boolean includeAnnotation, Set<Method> methodSet) get the set of methodsstatic void
Create directories, throw exception if not possible.static int
convert a month string to an int (1 indexed).static File
newFileUniqueName
(String parentDirName, String namePrefix, String nameSuffix, boolean createFile) make a new file in the name prefix dir.static <T> T
newInstance
(Class<T> theClass) Construct a classstatic <T> T
newInstance
(Class<T> theClass, boolean allowPrivateConstructor) Construct a classstatic Object
If array, get the element based on index, if Collection, get it based on iterator.static <T> Collection<T>
nonNull
(Collection<T> list) make sure a collection is non null.static <T> List<T>
make sure a list is non null.static <K,
V> Map<K, V> make sure it is non null, if null, then give new mapstatic <T> Set<T>
make sure a list is non null.static <T> T[]
make sure a array is non null.static boolean
nullOrBlank
(Object object) is an object null or blankstatic String
oracleStandardNameFromJava
(String javaName) get the oracle underscore name e.g.static long
packInts
(int first, int second) pack two ints into a long.static String
parentStemNameFromName
(String name) get the parent stem name from name.static String
prefixOrSuffix
(String startString, String separator, boolean isPrefix) get the prefix or suffix of a string based on a separatorstatic void
clear properties cache (e.g.static Properties
propertiesFromFile
(File file) read properties from filestatic Properties
propertiesFromResourceName
(String resourceName) read properties from a resource, dont modify the properties returned since they are cachedstatic Properties
propertiesFromResourceName
(String resourceName, boolean useCache, boolean exceptionIfNotExist, Class<?> classInJar, StringBuilder callingLog) read properties from a resource, dont modify the properties returned since they are cachedpropertiesThreadLocalOverrideMap
(String propertiesFileName) override map for properties in thread local to be used in a web server or the like, based on property file namestatic String
propertiesValue
(String resourceName, Properties properties, Map<String, String> overrideMap, String propertyName, boolean required) get a boolean property, or the default if cant find.static String
propertiesValue
(Properties properties, String key) get a value (trimmed to e) from a property filestatic String
propertiesValue
(Properties properties, Map<String, String> overrideMap, String key) get a value (trimmed to e) from a property filestatic String
propertiesValue
(Properties properties, Map<String, String> overrideMap, Map<String, String> overrideMap2, String key) get a value (trimmed to e) from a property filestatic boolean
propertiesValueBoolean
(String resourceName, Properties properties, Map<String, String> overrideMap, String propertyName, boolean defaultValue, boolean required) get a boolean property, or the default if cant find.static boolean
propertiesValueBoolean
(Properties properties, String propertyName, boolean defaultValue) get a boolean property, or the default if cant findstatic boolean
propertiesValueBoolean
(Properties properties, Map<String, String> overrideMap, String propertyName, boolean defaultValue) get a boolean property, or the default if cant findstatic boolean
propertiesValueBoolean
(Properties properties, Map<String, String> overrideMap, Map<String, String> overrideMap2, String propertyName, boolean defaultValue) get a boolean property, or the default if cant findstatic int
propertiesValueInt
(String resourceName, Properties properties, Map<String, String> overrideMap, String propertyName, int defaultValue, boolean required) get an int property, or the default if cant find.static int
propertiesValueInt
(Properties properties, Map<String, String> overrideMap, String propertyName, int defaultValue) get a int property, or the default if cant findstatic int
propertiesValueInt
(Properties properties, Map<String, String> overrideMap, Map<String, String> overrideMap2, String propertyName, int defaultValue) get a int property, or the default if cant findstatic String
propertyName
(Method method) If this is a getter or setter, then get the property namestatic Class
propertyType
(Class theClass, String propertyName) use reflection to get a property type based on getter or setter or fieldstatic boolean
propertyValidateValueBoolean
(String resourceName, Properties properties, Map<String, String> overrideMap, String key, boolean required, boolean exceptionOnError) make sure a value is boolean in propertiesstatic boolean
propertyValidateValueClass
(String resourceName, Properties properties, Map<String, String> overrideMap, String key, Class<?> classType, boolean required, boolean exceptionOnError) make sure a property is a class of a certain typestatic boolean
propertyValidateValueInt
(String resourceName, Properties properties, Map<String, String> overrideMap, String key, boolean required, boolean exceptionOnError) make sure a value is int in propertiesstatic boolean
propertyValidateValueRequired
(String resourceName, Properties properties, Map<String, String> overrideMap, String key, boolean exceptionOnError) make sure a value exists in propertiesstatic Object
propertyValue
(Object object, String property) this assumes the property exists, and is a simple propertystatic String
readFileIntoString
(File file) static String
readFileIntoStringUtf8
(File file) static String
readFileToString
(File file, String encoding) Reads the contents of a file into a String.static String
readFromFileIfFile
(String in, boolean disableExternalFileLookup) if the input is a file, read string from file.static String
readFromFileIfFileExists
(String in, boolean disableExternalFileLookup) if the input is a file, read string from file.static String
readFromFileIfFileUtf8
(String in, boolean disableExternalFileLookup) if the input is a file, read string from file.static String
readResourceIntoString
(String resourceName, boolean allowNull) static String
readResourceIntoString
(String resourceName, Class<?> classInJar) read resource into stringstatic Object
Remove the iterator or indexstatic Object
Remove the iterator or indexstatic void
removeEnd
(StringBuilder str, String remove) remove end if therestatic String
Removes a substring only if it is at the end of a source string, otherwise returns the source string.static void
rename a file to another file and throw runtime exception if not okstatic String
Repeat a Stringrepeat
times to form a new String.static void
replace a string or strings from a string, and put the output in a string buffer.static void
replace a string or strings from a string, and put the output in a string bufferstatic void
replace
(StringBuffer outBuffer, String text, Object searchFor, Object replaceWith) replace a string or strings from a string, and put the output in a string buffer.static void
replace
(StringBuffer outBuffer, String text, Object searchFor, Object replaceWith, boolean recurse) replace a string or strings from a string, and put the output in a string bufferstatic String
replace a string or strings from a string, and put the output in a string buffer.static String
replace a string or strings from a string, and put the output in a string bufferstatic String
replace a string or strings from a string, and put the output in a string bufferstatic String
Replaces all occurrences of a String within another String.static String
Replaces a String with another String inside a larger String, for the firstmax
values of the search String.static String
replaceWhitespaceWithSpace
(String input) replace all whitespace with spacestatic String
responseBodyAsString
(org.apache.commons.httpclient.HttpMethodBase method) for testing, get the response body as a stringstatic ExecutorService
static String
retrievePasswordFromStdin
(boolean dontMask, String prompt) retrieve a password from stdinstatic final char[]
retrievePasswordFromStdin
(InputStream in, String prompt) static String
Right pad a String with spaces (' ').static String
Right pad a String with a specified character.static String
Right pad a String with a specified String.static void
rollbackQuietly
(Connection connection) rollback a connection quietlystatic void
saveStringIntoFile
(File file, String contents) save a string into a file, file does not have to existstatic boolean
saveStringIntoFile
(File file, String contents, boolean onlyIfDifferentContents, boolean ignoreWhitespace) save a string into a file, file does not have to existstatic void
serializeObjectToFile
(Serializable object, File file) serialize an object to a file (create parent dir if necessary)static Method
get a setter method object for a class, potentially in superclassesstatic Method
setterHelper
(Class theClass, String fieldName, String setterName, boolean callOnSupers, boolean throwExceptionIfNotFound) get a setter method object for a class, potentially in superclassesstatic String
setterNameFromPropertyName
(String propertyName) generate setBb from bbsetters
(Class theClass, Class superclassToStopAt, Class<?> fieldType, boolean includeSuperclassToStopAt, Class<? extends Annotation> markerAnnotation, boolean includeAnnotation) get all setters from a class, including superclasses (if specified)static String
setToString
(Set set) convert a set to a string (comma separate)static Short
shortObjectValue
(Object input) get the Short value of an object.static short
shortValue
(Object input) convert an object to a shortstatic void
sleep
(long millis) sleep, if interrupted, throw runtimestatic String[]
Splits the provided text into an array, using whitespace as the separator.static String[]
Splits the provided text into an array, separator specified.static String[]
Splits the provided text into an array, separators specified.static String[]
Splits the provided text into an array with a maximum length, separators specified.static String[]
splitByWholeSeparator
(String str, String separator) Splits the provided text into an array, separator string specified.static String[]
splitByWholeSeparator
(String str, String separator, int max) Splits the provided text into an array, separator string specified.static String[]
Splits the provided text into an array, using whitespace as the separator, preserving all tokens, including empty tokens created by adjacent separators.static String[]
splitPreserveAllTokens
(String str, char separatorChar) Splits the provided text into an array, separator specified, preserving all tokens, including empty tokens created by adjacent separators.static String[]
splitPreserveAllTokens
(String str, String separatorChars) Splits the provided text into an array, separators specified, preserving all tokens, including empty tokens created by adjacent separators.static String[]
splitPreserveAllTokens
(String str, String separatorChars, int max) Splits the provided text into an array with a maximum length, separators specified, preserving all tokens, including empty tokens created by adjacent separators.static String[]
split a string based on a separator into an array, and trim each entry (see the Commons Util trim() for more details)static String[]
split a string based on a separator into an array, and trim each entry (see the Commons Util trim() for more details)splitTrimToList
(String input, String separator) split a string based on a separator into an array, and trim each entry (see the Commons Util trim() for more details)splitTrimToSet
(String input, String separator) split a string based on a separator into an array, and trim each entry (see the Commons Util trim() for more details)static Date
stringToDate
(String dateString) convert a string to a date using the standard web service pattern Note that HH is 0-23static Date
stringToDate2
(String input) take as input: yyyy/mm/dd yyyy-mm-dd dd-mon-yyyy yyyy/mm/dd hh:mm:ss dd-mon-yyyy hh:mm:ss yyyy/mm/dd hh:mm:ss.SSS dd-mon-yyyy hh:mm:ss.SSSstatic Timestamp
stringToTimestamp
(String input) convert a string to timestamp based on the following formats: yyyyMMdd yyyy/MM/dd HH:mm:ss yyyy/MM/dd HH:mm:ss.SSS yyyy/MM/dd HH:mm:ss.SSSSSSstatic String
stringValue
(Object input) convert an object to a stringstatic String
stringValue
(Date date) convert a date to the standard string yyyymmddstatic String
Strips any of a set of characters from the end of a String.static String
stripLastSlashIfExists
(String input) strip the last slash (/ or \) from a string if it existsstatic String
stripPrefix
(String string, String prefix) strip the prefix offstatic String
stripStart
(String str, String stripChars) Strips any of a set of characters from the start of a String.static String
substituteCommonVars
(String string) substitute common vars like $space$ and $newline$static String
substringAfter
(String str, String separator) Gets the substring after the first occurrence of a separator.static String
substringAfterLast
(String str, String separator) Gets the substring after the last occurrence of a separator.static String
substringBefore
(String str, String separator) Gets the substring before the first occurrence of a separator.static String
substringBeforeLast
(String str, String separator) Gets the substring before the last occurrence of a separator.static String
suffixAfterChar
(String input, char theChar) return the suffix after a char.static String
timestampToString
(Date timestamp) Convert a timestamp into a string: yyyy/MM/dd HH:mm:ss.SSSstatic Object
Convert a list to an array with the type of the first element e.g.static <T> T[]
toArray
(Collection collection, Class<T> theClass) convert a list into an array of type of theClassstatic <T> List<T>
toList
(T... objects) return a list of objects from varargs.toListClasses
(Class<?>... classes) convert classes to a liststatic <T> List<T>
toListFromCollection
(Collection<T> collection) convert a collection to a list (if already a list, keep it)static Map<?,
?> keys and values go into mapstatic <T> Set<T>
toSet
(T... objects) return a set of objects from varargs.static Date
null safe convert from util date to sql datestatic String
toString
(InputStream input, String encoding) Get the contents of anInputStream
as a String.static String
Get the contents of aReader
as a String.static String
toStringForLog
(Object object) print out various types of objectsstatic String
toStringForLog
(Object object, boolean newLines) print out various types of objectsstatic String
toStringForLog
(Object object, int maxChars) print out various types of objectsstatic String
toStringSafe
(Object object) fail safe toString for Exception blocks, and include the stack if there is a problem with toString()static Timestamp
toTimestamp
(Object input) Convert a string or object to a timestamp (could be string, date, timestamp, etc) yyyymmdd or yyyy/MM/dd HH:mm:ss or yyyy/MM/dd HH:mm:ss.SSS or yyyy/MM/dd HH:mm:ss.SSSSSSstatic String
trim whitespace from stringstatic String
trimToEmpty
(String str) trim to empty, convert null to emptystatic String
truncateAscii
(String input, int requiredLength) find the length of ascii chars (non ascii are counted as two)static <T> T
If necessary, convert an object to another type.static <T> T
typeCast
(Object value, Class<T> theClass, boolean convertNullToDefaultPrimitive, boolean useNewInstanceHooks) If necessary, convert an object to another type.static String
uniqueId()
get a unique string identifier based on the current time, this is not globally unique, just unique for as long as this server is running...static int
unpackInt
(long theLong, boolean isFirst) take a longstatic Serializable
unserializeObjectFromFile
(File file, boolean nullIfException, boolean deleteFileOnException) unserialize an object from a file if it existsstatic String
uuid()
generate a uuidstatic void
writeStringToFile
(File file, String data, String encoding) Writes data to a file.
-
Field Details
-
LOG_ERROR
- See Also:
-
ONE_KB
public static final long ONE_KBThe number of bytes in a kilobyte.- See Also:
-
ONE_MB
public static final long ONE_MBThe number of bytes in a megabyte.- See Also:
-
ONE_GB
public static final long ONE_GBThe number of bytes in a gigabyte.- See Also:
-
DATE_FORMAT
string format of dates- See Also:
-
DATE_MINUTES_SECONDS_FORMAT
format including minutes and seconds: yyyy/MM/dd HH:mm:ss- See Also:
-
DATE_MINUTES_SECONDS_NO_SLASH_FORMAT
format including minutes and seconds: yyyyMMdd HH:mm:ss- See Also:
-
TIMESTAMP_FORMAT
format on screen of config for milestone: yyyy/MM/dd HH:mm:ss.SSS- See Also:
-
TIMESTAMP_DASHES_TENTHS_FORMAT
format on screen of config for milestone: 2015-04-22 00:00:00.0- See Also:
-
TIMESTAMP_NO_SLASH_FORMAT
format on screen of config for milestone: yyyyMMdd HH:mm:ss.SSS- See Also:
-
NOT_FOUND
public static final int NOT_FOUNDspecial number when a number is not found- See Also:
-
DEFAULT_BUFFER_SIZE
public static final int DEFAULT_BUFFER_SIZEThe name says it all.- See Also:
-
EMPTY_STRING_ARRAY
An empty immutableString
array. -
EMPTY_OBJECT_ARRAY
An empty immutableObject
array. -
EMPTY
The empty String""
.- Since:
- 2.0
- See Also:
-
INDEX_NOT_FOUND
public static final int INDEX_NOT_FOUNDRepresents a failed index search.- Since:
- 2.1
- See Also:
-
-
Constructor Details
-
GrouperClientCommonUtils
public GrouperClientCommonUtils()
-
-
Method Details
-
debugMapIncrementLogEntry
public static void debugMapIncrementLogEntry(Map<String, Object> debugMap, String key, Object incrementBy) add a value to a log entry- Parameters:
debugMap
-key
-incrementBy
- any number
-
argAfter
return the arg after the argBefore, or null if not there, or exception if argBefore is not found- Parameters:
args
-argBefore
-- Returns:
- the arg
-
append
public static void append(StringBuilder result, String separatorIfResultNotEmpty, String stringToAppend) append and maybe put a separator in there- Parameters:
result
-separatorIfResultNotEmpty
-stringToAppend
-
-
byteCountToDisplaySize
Returns a human-readable version of the file size (original is in bytes).- Parameters:
size
- The number of bytes.- Returns:
- A human-readable display value (includes units).
-
hasOption
public static boolean hasOption(int options, int option) see if options have a specific option by int bits- Parameters:
options
-option
-- Returns:
- if the option is there
-
fileCanonicalPath
get canonical path of file- Parameters:
file
-- Returns:
- the path
-
suffixAfterChar
return the suffix after a char. If the char doesnt exist, just return the string- Parameters:
input
- stringtheChar
- char- Returns:
- new string
-
oracleStandardNameFromJava
get the oracle underscore name e.g. javaNameHere -> JAVA_NAME_HERE- Parameters:
javaName
- the java convention name- Returns:
- the oracle underscore name based on the java name
-
mapEquals
see if two maps are the equivalent (based on number of entries, and the equals() method of the keys and values)- Type Parameters:
K
-V
-- Parameters:
first
-second
-- Returns:
- true if equal
-
mapDifferences
public static <K,V> void mapDifferences(Map<K, V> first, Map<K, V> second, Set<K> differences, String prefix) see if two maps are the equivalent (based on number of entries, and the equals() method of the keys and values)- Type Parameters:
K
-V
-- Parameters:
first
- map to check diffssecond
- map to check diffsdifferences
- set of keys (with prefix) of the diffsprefix
- for the entries in the diffs (e.g. "attribute__"
-
sleep
public static void sleep(long millis) sleep, if interrupted, throw runtime- Parameters:
millis
-
-
mapAddValue
in a map get a value if there and increment or set a value- Parameters:
map
-key
-numberToAdd
- long
-
mapAddValue
in a map get a value if there and increment or set a value- Parameters:
map
-key
-numberToAdd
- int
-
injectInException
If we can, inject this into the exception, else return false- Parameters:
t
-message
-- Returns:
- true if success, false if not
-
createRuntimeExceptionWithMessage
public static RuntimeException createRuntimeExceptionWithMessage(RuntimeException r1, String message) Return a new runtime exception of the same type as the given exception but with the new message. The cause of the new runtime exception will be the given exception. If a usable constructor cannot be found, the original exception will be returned. Caller can check if the same exception is returned to log the message if it wants.- Parameters:
r1
-message
-
-
uniqueId
get a unique string identifier based on the current time, this is not globally unique, just unique for as long as this server is running...- Returns:
- String
-
fileFromResourceName
get a file name from a resource name- Parameters:
resourceName
- is the classpath location- Returns:
- the file path on the system
-
computeUrl
compute a url of a resource- Parameters:
resourceName
-canBeNull
- if cant be null, throw runtime- Returns:
- the URL
-
classLoader
fast class loader- Returns:
- the class loader
-
nonNull
make sure a array is non null. If null, then return an empty array. Note: this will probably not work for primitive arrays (e.g. int[])- Type Parameters:
T
-- Parameters:
array
-theClass
- to make array from- Returns:
- the list or empty list if null
-
prefixOrSuffix
get the prefix or suffix of a string based on a separator- Parameters:
startString
- is the string to start withseparator
- is the separator to split onisPrefix
- if thre prefix or suffix should be returned- Returns:
- the prefix or suffix, if the separator isnt there, return the original string
-
indent
this method will indent xml or json. this is for logging or documentations purposes only and should not be used for a production use (since it is not 100% tested or compliant with all constructs like xml CDATA For xml, assumes elements either have text or sub elements, not both. No cdata, nothing fancy. If the input is <a><b><c>hey</c><d><e>there</e></d></b></a> It would output: <a> <b> <c>hey</c> <d> <e>there</e> </d> </b> </a> For json, if the input is: {"a":{"b\"b":{"c\\":"d"},"e":"f","g":["h":"i"]}} It would output: { "a":{ "b\"b":{ "c\\":"d" }, "e":"f", "g":[ "h":"i" ] } }
- Parameters:
string
-failIfTypeNotFound
-- Returns:
- the indented string, 2 spaces per line
-
extensionFromName
get the extension from name. if name is a:b:c, name is c- Parameters:
name
-- Returns:
- the name
-
forName
Returns the class object.
- Parameters:
origClassName
- is fully qualified- Returns:
- the class
-
newInstance
Construct a class- Type Parameters:
T
- template type- Parameters:
theClass
-- Returns:
- the instance
-
newInstance
Construct a class- Type Parameters:
T
- template type- Parameters:
theClass
-allowPrivateConstructor
- true if should allow private constructors- Returns:
- the instance
-
parentStemNameFromName
get the parent stem name from name. if already a root stem then just return null. e.g. if the name is a:b:c then the return value is a:b- Parameters:
name
-- Returns:
- the parent stem name or null if none
-
defaultIfBlank
return the string or the other if the first is blank- Parameters:
string
-defaultStringIfBlank
-- Returns:
- the string or the default one
-
defaultIfNull
public static <T> T defaultIfNull(T theValue, T defaultIfTheValueIsNull) genericized method to see if first is null, if so then return second, else first.- Type Parameters:
T
-- Parameters:
theValue
- first inputdefaultIfTheValueIsNull
- second input- Returns:
- the first if not null, second if no
-
addIfNotThere
add each element of listToAdd if it is not already in list- Type Parameters:
T
-- Parameters:
list
- to add tolistToAdd
- each element will be added to list, or null if none
-
setToString
convert a set to a string (comma separate)- Parameters:
set
-- Returns:
- the String
-
MapToString
Deprecated.use mapToString(map)convert a set to a string (comma separate)- Parameters:
map
-- Returns:
- the String
-
mapToString
convert a set to a string (comma separate)- Parameters:
map
-- Returns:
- the String
-
toStringForLog
print out various types of objects- Parameters:
object
-- Returns:
- the string value
-
toStringForLog
print out various types of objects- Parameters:
object
-- Returns:
- the string value
-
toStringForLog
print out various types of objects- Parameters:
object
-maxChars
- is the max chars that should be returned (abbreviate if longer), or -1 for any amount- Returns:
- the string value
-
batchNumberOfBatches
public static int batchNumberOfBatches(int count, int batchSize, boolean haveAtLeastOne) If batching this is the number of batches- Parameters:
count
- is size of setbatchSize
-haveAtLeastOne
- is true if there should be at least one run even if the collection is empty (e.g. for queries based on other things)- Returns:
- the number of batches
-
batchNumberOfBatches
Deprecated.use batchNumberOfBatches(Collection<?> collection, int batchSize, boolean haveAtLeastOne)If batching this is the number of batches. Will return at least 1- Parameters:
count
- is size of setbatchSize
-- Returns:
- the number of batches
-
batchNumberOfBatches
Deprecated.use batchNumberOfBatches(Collection<?> collection, int batchSize, boolean haveAtLeastOne)If batching this is the number of batches, will return at least 1- Parameters:
collection
-batchSize
-- Returns:
- the number of batches
-
batchNumberOfBatches
public static int batchNumberOfBatches(Collection<?> collection, int batchSize, boolean haveAtLeastOne) If batching this is the number of batches, will return at least 1- Parameters:
collection
-batchSize
-haveAtLeastOne
- is true if there should be at least one run even if the collection is empty (e.g. for queries based on other things)- Returns:
- the number of batches
-
batchList
retrieve a batch by 0 index. Will return an array of size batchSize or the remainder. the array will be full of elements. Note, this requires an ordered input (so use linkedhashset not hashset if doing sets)- Type Parameters:
T
- template type- Parameters:
collection
-batchSize
-batchIndex
-- Returns:
- the list This never returns null, only empty list
-
splitTrim
split a string based on a separator into an array, and trim each entry (see the Commons Util trim() for more details)- Parameters:
input
- is the delimited input to split and trimseparator
- is what to split on- Returns:
- the array of items after split and trimmed, or null if input is null. will be trimmed to empty
-
splitTrimToList
split a string based on a separator into an array, and trim each entry (see the Commons Util trim() for more details)- Parameters:
input
- is the delimited input to split and trimseparator
- is what to split on- Returns:
- the list of items after split and trimmed, or null if input is null. will be trimmed to empty
-
splitTrimToSet
split a string based on a separator into an array, and trim each entry (see the Commons Util trim() for more details)- Parameters:
input
- is the delimited input to split and trimseparator
- is what to split on- Returns:
- the set of items after split and trimmed, or null if input is null. will be trimmed to empty
-
splitTrim
public static String[] splitTrim(String input, String separator, boolean treatAdjacentSeparatorsAsOne) split a string based on a separator into an array, and trim each entry (see the Commons Util trim() for more details)- Parameters:
input
- is the delimited input to split and trimseparator
- is what to split ontreatAdjacentSeparatorsAsOne
-- Returns:
- the array of items after split and trimmed, or null if input is null. will be trimmed to empty
-
escapeUrlEncode
escape url chars (e.g. a # is %23)- Parameters:
string
- input- Returns:
- the encoded string
-
escapeUrlDecode
unescape url chars (e.g. a space is %20)- Parameters:
string
- input- Returns:
- the encoded string
-
nonNull
make sure a list is non null. If null, then return an empty list- Type Parameters:
T
-- Parameters:
list
-- Returns:
- the list or empty list if null
-
nonNull
make sure a collection is non null. If null, then return an empty list- Type Parameters:
T
-- Parameters:
list
-- Returns:
- the list or empty list if null
-
nonNull
make sure a list is non null. If null, then return an empty set- Type Parameters:
T
-- Parameters:
set
-- Returns:
- the set or empty set if null
-
nonNull
make sure it is non null, if null, then give new map- Type Parameters:
K
- key of mapV
- value of map- Parameters:
map
- is map- Returns:
- set non null
-
toListFromCollection
convert a collection to a list (if already a list, keep it)- Type Parameters:
T
-- Parameters:
collection
-- Returns:
- the list
-
toList
return a list of objects from varargs. Though if there is one object, and it is a list, return it.- Type Parameters:
T
- template type of the objects- Parameters:
objects
-- Returns:
- the list or null if objects is null
-
toListClasses
convert classes to a list- Parameters:
classes
-- Returns:
- list of classes
-
toSet
return a set of objects from varargs.- Type Parameters:
T
- template type of the objects- Parameters:
objects
-- Returns:
- the set
-
assertion
If false, throw an assertException, and give a reason- Parameters:
isTrue
-reason
-
-
assignField
public static void assignField(Class theClass, Object invokeOn, String fieldName, Object dataToAssign, boolean callOnSupers, boolean overrideSecurity, boolean typeCast, Class<? extends Annotation> annotationWithValueOverride) assign data to a field- Parameters:
theClass
- the class which has the methodinvokeOn
- to call on or null for staticfieldName
- method name to calldataToAssign
- datacallOnSupers
- if static and method not exists, try on supersoverrideSecurity
- true to call on protected or private etc methodstypeCast
- true if we should typecastannotationWithValueOverride
- annotation with value of override
-
assignField
public static void assignField(Class theClass, Object invokeOn, String fieldName, Object dataToAssign, Class<? extends Annotation> annotationWithValueOverride) assign data to a field. Will find the field in superclasses, will typecast, and will override security (private, protected, etc)- Parameters:
theClass
- the class which has the methodinvokeOn
- to call on or null for staticfieldName
- method name to calldataToAssign
- dataannotationWithValueOverride
- annotation with value of override
-
assignField
public static void assignField(Field field, Object invokeOn, Object dataToAssign, boolean overrideSecurity, boolean typeCast) assign data to a field- Parameters:
field
- is the field to assign toinvokeOn
- to call on or null for staticdataToAssign
- dataoverrideSecurity
- true to call on protected or private etc methodstypeCast
- true if we should typecast
-
iterator
null safe iterator getter if the type if collection- Parameters:
collection
-- Returns:
- the iterator
-
length
Null safe array length or map- Parameters:
arrayOrCollection
-- Returns:
- the length of the array (0 for null)
-
next
If array, get the element based on index, if Collection, get it based on iterator.- Parameters:
arrayOrCollection
-iterator
-index
-- Returns:
- the object
-
remove
Remove the iterator or index- Parameters:
arrayOrCollection
-index
-- Returns:
- the object list or new array
-
remove
Remove the iterator or index- Parameters:
arrayOrCollection
-iterator
-index
-- Returns:
- the object list or new array
-
classesString
print the simple names of a list of classes- Parameters:
object
-- Returns:
- the simple names
-
classNameCollection
null safe classname method, max out at 20- Parameters:
object
-- Returns:
- the classname
-
className
null safe classname method, gets the unenhanced name- Parameters:
object
-- Returns:
- the classname
-
assignField
public static void assignField(Field field, Object invokeOn, Object dataToAssign, boolean overrideSecurity, boolean typeCast, Class<? extends Annotation> annotationWithValueOverride) assign data to a field- Parameters:
field
- is the field to assign toinvokeOn
- to call on or null for staticdataToAssign
- dataoverrideSecurity
- true to call on protected or private etc methodstypeCast
- true if we should typecastannotationWithValueOverride
- annotation with value of override, or null if none
-
assignField
assign data to a field. Will find the field in superclasses, will typecast, and will override security (private, protected, etc)- Parameters:
invokeOn
- to call on or null for staticfieldName
- method name to calldataToAssign
- data
-
field
public static Field field(Class theClass, String fieldName, boolean callOnSupers, boolean throwExceptionIfNotFound) get a field object for a class, potentially in superclasses- Parameters:
theClass
-fieldName
-callOnSupers
- true if superclasses should be looked in for the fieldthrowExceptionIfNotFound
- will throw runtime exception if not found- Returns:
- the field object or null if not found (or exception if param is set)
-
fieldNames
return a set of Strings for a class and type. This is not for any supertypes, only for the type at hand. includes final fields- Parameters:
theClass
-fieldType
- or null for allincludeStaticFields
-- Returns:
- the set of strings, or the empty Set if none
-
fieldNames
public static Set<String> fieldNames(Class theClass, Class superclassToStopAt, Class<?> fieldType, boolean includeSuperclassToStopAt, boolean includeStaticFields, boolean includeFinalFields) get all field names from a class, including superclasses (if specified)- Parameters:
theClass
- to look for fields insuperclassToStopAt
- to go up to or null to go up to ObjectfieldType
- is the type of the field to getincludeSuperclassToStopAt
- if we should include the superclassincludeStaticFields
- if include static fieldsincludeFinalFields
- if final fields should be included- Returns:
- the set of field names or empty set if none
-
fieldNames
public static Set<String> fieldNames(Class theClass, Class superclassToStopAt, Class<?> fieldType, boolean includeSuperclassToStopAt, boolean includeStaticFields, boolean includeFinalFields, Class<? extends Annotation> markerAnnotationToIngore) get all field names from a class, including superclasses (if specified). ignore a certain marker annotation- Parameters:
theClass
- to look for fields insuperclassToStopAt
- to go up to or null to go up to ObjectfieldType
- is the type of the field to getincludeSuperclassToStopAt
- if we should include the superclassincludeStaticFields
- if include static fieldsincludeFinalFields
- if final fields should be includedmarkerAnnotationToIngore
- if this is not null, then if the field has this annotation, then do not include in list- Returns:
- the set of field names
-
fieldNames
public static Set<String> fieldNames(Class theClass, Class superclassToStopAt, Class<? extends Annotation> markerAnnotationToIngore) get all field names from a class, including superclasses (if specified) (up to and including the specified superclass). ignore a certain marker annotation. Dont get static or final field, and get fields of all types- Parameters:
theClass
- to look for fields insuperclassToStopAt
- to go up to or null to go up to ObjectmarkerAnnotationToIngore
- if this is not null, then if the field has this annotation, then do not include in list- Returns:
- the set of field names or empty set if none
-
fields
public static Set<Field> fields(Class theClass, Class superclassToStopAt, Class fieldType, boolean includeSuperclassToStopAt, boolean includeStaticFields, boolean includeFinalFields, Class<? extends Annotation> markerAnnotation, boolean includeAnnotation) get all fields from a class, including superclasses (if specified)- Parameters:
theClass
- to look for fields insuperclassToStopAt
- to go up to or null to go up to ObjectfieldType
- is the type of the field to getincludeSuperclassToStopAt
- if we should include the superclassincludeStaticFields
- if include static fieldsincludeFinalFields
- if final fields should be includedmarkerAnnotation
- if this is not null, then if the field has this annotation, then do not include in list (if includeAnnotation is false)includeAnnotation
- true if the attribute should be included if annotation is present, false if exclude- Returns:
- the set of fields (wont return null)
-
fields
public static Set<Field> fields(Class theClass, Class superclassToStopAt, Class<? extends Annotation> markerAnnotation, boolean includeAnnotation) get all fields from a class, including superclasses (if specified) (up to and including the specified superclass). ignore a certain marker annotation, or only include it. Dont get static or final field, and get fields of all types- Parameters:
theClass
- to look for fields insuperclassToStopAt
- to go up to or null to go up to ObjectmarkerAnnotation
- if this is not null, then if the field has this annotation, then do not include in list (if includeAnnotation is false)includeAnnotation
- true if the attribute should be included if annotation is present, false if exclude- Returns:
- the set of field names or empty set if none
-
compareObjectFields
public static Set<String> compareObjectFields(Object first, Object second, Set<String> fieldsToCompare, String mapPrefix) compare two objects, compare primitives, Strings, maps of string attributes. if both objects equal each others references, then return empty set. then, if not, then if either is null, return all fields- Parameters:
first
-second
-fieldsToCompare
-mapPrefix
- is the prefix for maps which are compared (e.g. attribute__)- Returns:
- the set of fields which are different. never returns null
-
clone
clone an object, assign primitives, Strings, maps of string attributes. Clone GrouperCloneable fields.- Type Parameters:
T
- template- Parameters:
object
-fieldsToClone
-- Returns:
- the cloned object or null if input is null
-
cloneFields
clone an object, assign primitives, Strings, maps of string attributes. Clone GrouperCloneable fields.- Type Parameters:
T
- template- Parameters:
object
-result
-fieldsToClone
-
-
cloneValue
public static <T> T cloneValue(T value) helper method to clone the value of a field. just returns the same reference for primitives and immutables. Will subclone GrouperCloneables, and will throw exception if not expecting the type. Will clone sets, lists, maps.- Type Parameters:
T
- template- Parameters:
value
-- Returns:
- the cloned value
-
methodNames
public static Set<String> methodNames(Class<?> theClass, Class<?> superclassToStopAt, boolean includeSuperclassToStopAt, boolean includeStaticMethods) simple method to get method names- Parameters:
theClass
-superclassToStopAt
-includeSuperclassToStopAt
-includeStaticMethods
-- Returns:
- the set of method names
-
methodsHelper
public static void methodsHelper(Class<?> theClass, Class<?> superclassToStopAt, boolean includeSuperclassToStopAt, boolean includeStaticMethods, Class<? extends Annotation> markerAnnotation, boolean includeAnnotation, Set<Method> methodSet) get the set of methods- Parameters:
theClass
-superclassToStopAt
-includeSuperclassToStopAt
-includeStaticMethods
-markerAnnotation
-includeAnnotation
-methodSet
-
-
method
public static Method method(Class<?> theClass, String methodName, Object paramTypesOrArrayOrList, Class<?> superclassToStopAt, boolean includeSuperclassToStopAt, boolean isStaticOrInstance, Class<? extends Annotation> markerAnnotation, boolean includeAnnotation) get the set of methods- Parameters:
theClass
-methodName
-paramTypesOrArrayOrList
- types of the paramssuperclassToStopAt
-includeSuperclassToStopAt
-isStaticOrInstance
- true if staticmarkerAnnotation
-includeAnnotation
-- Returns:
- the method or null if not found
-
fieldValue
public static Object fieldValue(Class theClass, Object invokeOn, String fieldName, boolean callOnSupers, boolean overrideSecurity) find out a field value- Parameters:
theClass
- the class which has the methodinvokeOn
- to call on or null for staticfieldName
- method name to callcallOnSupers
- if static and method not exists, try on supersoverrideSecurity
- true to call on protected or private etc methods- Returns:
- the current value
-
fieldValue
get the value of a field, override security if needbe- Parameters:
field
-invokeOn
-- Returns:
- the value of the field
-
fieldValue
get the value of a field- Parameters:
field
-invokeOn
-overrideSecurity
-- Returns:
- the value of the field
-
fieldValue
find out a field value (invoke on supers, override security)- Parameters:
invokeOn
- to call on or null for staticfieldName
- method name to call- Returns:
- the current value
-
callMethod
helper method for calling a method with no params (could be in superclass)- Parameters:
theClass
- the class which has the methodinvokeOn
- to call on or null for staticmethodName
- method name to call- Returns:
- the data
-
callMethod
public static Object callMethod(Class theClass, Object invokeOn, String methodName, Object paramTypesOrArrayOrList, Object paramsOrListOrArray) helper method for calling a method (could be in superclass)- Parameters:
theClass
- the class which has the methodinvokeOn
- to call on or null for staticmethodName
- method name to callparamTypesOrArrayOrList
- types of the paramsparamsOrListOrArray
- data- Returns:
- the data
-
callMethod
public static Object callMethod(Class theClass, Object invokeOn, String methodName, Object paramTypesOrArrayOrList, Object paramsOrListOrArray, boolean callOnSupers) helper method for calling a method- Parameters:
theClass
- the class which has the methodinvokeOn
- to call on or null for staticmethodName
- method name to callparamTypesOrArrayOrList
- types of the paramsparamsOrListOrArray
- datacallOnSupers
- if static and method not exists, try on supers- Returns:
- the data
-
construct
construct an instance by reflection- Type Parameters:
T
-- Parameters:
theClass
-args
-types
-- Returns:
- the instance
-
callMethod
public static Object callMethod(Class theClass, Object invokeOn, String methodName, Object paramTypesOrArrayOrList, Object paramsOrListOrArray, boolean callOnSupers, boolean overrideSecurity) helper method for calling a method- Parameters:
theClass
- the class which has the methodinvokeOn
- to call on or null for staticmethodName
- method name to callparamTypesOrArrayOrList
- types of the paramsparamsOrListOrArray
- datacallOnSupers
- if static and method not exists, try on supersoverrideSecurity
- true to call on protected or private etc methods- Returns:
- the data
-
invokeMethod
Safely invoke a reflection method that takes no args- Parameters:
method
- to invokeinvokeOn
- if NO_PARAMS then will not pass in params.- Returns:
- the result
-
invokeMethod
Safely invoke a reflection method- Parameters:
method
- to invokeinvokeOn
-paramsOrListOrArray
- must be an arg. If null, will pass null. if NO_PARAMS then will not pass in params.- Returns:
- the result
-
toArray
Convert a list to an array with the type of the first element e.g. if it is a list of Person objects, then the array is Person[]- Parameters:
objectOrArrayOrCollection
- is a list- Returns:
- the array of objects with type of the first element in the list
-
toArray
convert a list into an array of type of theClass- Type Parameters:
T
- is the type of the array- Parameters:
collection
- list to converttheClass
- type of array to return- Returns:
- array of type theClass[] filled with the objects from list
-
callMethod
helper method for calling a static method up the stack. method takes no args (could be in superclass)- Parameters:
theClass
- the class which has the methodmethodName
- method name to call- Returns:
- the data
-
callMethod
helper method for calling a static method with no params- Parameters:
theClass
- the class which has the methodmethodName
- method name to callcallOnSupers
- if we should try the super classes if not exists in this class- Returns:
- the data
-
callMethod
public static Object callMethod(Class theClass, String methodName, Object paramTypesOrArrayOrList, Object paramsOrListOrArray) helper method for calling a static method up the stack- Parameters:
theClass
- the class which has the methodmethodName
- method name to callparamTypesOrArrayOrList
- types of the paramsparamsOrListOrArray
- data- Returns:
- the data
-
callMethod
helper method for calling a method with no params (could be in superclass), will override security- Parameters:
invokeOn
- instance to invoke onmethodName
- method name to call not exists in this class- Returns:
- the data
-
replace
replace a string or strings from a string, and put the output in a string buffer. This does not recurse- Parameters:
text
- string to look insearchFor
- string array to search forreplaceWith
- string array to replace with- Returns:
- the string
-
replace
replace a string or strings from a string, and put the output in a string buffer- Parameters:
text
- string to look insearchFor
- string array to search forreplaceWith
- string array to replace withrecurse
- if true then do multiple replaces (on the replacements)- Returns:
- the string
-
replace
public static String replace(String text, Object searchFor, Object replaceWith, boolean recurse, boolean removeIfFound) replace a string or strings from a string, and put the output in a string buffer- Parameters:
text
- string to look insearchFor
- string array to search forreplaceWith
- string array to replace withrecurse
- if true then do multiple replaces (on the replacements)removeIfFound
- true if removing from searchFor and replaceWith if found- Returns:
- the string
-
replace
Replaces all occurrences of a String within another String.
A
null
reference passed to this method is a no-op.replace(null, *, *) = null replace("", *, *) = "" replace("any", null, *) = "any" replace("any", *, null) = "any" replace("any", "", *) = "any" replace("aba", "a", null) = "aba" replace("aba", "a", "") = "b" replace("aba", "a", "z") = "zbz"
- Parameters:
text
- text to search and replace in, may be nullrepl
- the String to search for, may be nullwith
- the String to replace with, may be null- Returns:
- the text with any replacements processed,
null
if null String input - See Also:
-
replace
Replaces a String with another String inside a larger String, for the first
max
values of the search String.A
null
reference passed to this method is a no-op.replace(null, *, *, *) = null replace("", *, *, *) = "" replace("any", null, *, *) = "any" replace("any", *, null, *) = "any" replace("any", "", *, *) = "any" replace("any", *, *, 0) = "any" replace("abaa", "a", null, -1) = "abaa" replace("abaa", "a", "", -1) = "b" replace("abaa", "a", "z", 0) = "abaa" replace("abaa", "a", "z", 1) = "zbaa" replace("abaa", "a", "z", 2) = "zbza" replace("abaa", "a", "z", -1) = "zbzz"
- Parameters:
text
- text to search and replace in, may be nullrepl
- the String to search for, may be nullwith
- the String to replace with, may be nullmax
- maximum number of values to replace, or-1
if no maximum- Returns:
- the text with any replacements processed,
null
if null String input
-
isEmpty
Checks if a String is empty ("") or null.
isEmpty(null) = true isEmpty("") = true isEmpty(" ") = false isEmpty("bob") = false isEmpty(" bob ") = false
NOTE: This method changed in Lang version 2.0. It no longer trims the String. That functionality is available in isBlank().
- Parameters:
str
- the String to check, may be null- Returns:
true
if the String is empty or null
-
replace
public static void replace(StringBuffer outBuffer, String text, Object searchFor, Object replaceWith) replace a string or strings from a string, and put the output in a string buffer. This does not recurse- Parameters:
outBuffer
- stringbuffer to write totext
- string to look insearchFor
- string array to search forreplaceWith
- string array to replace with
-
replace
public static void replace(StringBuffer outBuffer, String text, Object searchFor, Object replaceWith, boolean recurse) replace a string or strings from a string, and put the output in a string buffer- Parameters:
outBuffer
- stringbuffer to write totext
- string to look insearchFor
- string array to search forreplaceWith
- string array to replace withrecurse
- if true then do multiple replaces (on the replacements)
-
replace
replace a string or strings from a string, and put the output in a string buffer. This does not recurse- Parameters:
outWriter
- writer to write totext
- string to look insearchFor
- string array to search forreplaceWith
- string array to replace with
-
replace
public static void replace(Writer outWriter, String text, Object searchFor, Object replaceWith, boolean recurse) replace a string or strings from a string, and put the output in a string buffer- Parameters:
outWriter
- writer to write totext
- string to look insearchFor
- string array to search forreplaceWith
- string array to replace withrecurse
- if true then do multiple replaces (on the replacements)
-
packInts
public static long packInts(int first, int second) pack two ints into a long. Note: the first is held in the left bits, the second is held in the right bits- Parameters:
first
- is first intsecond
- is second int- Returns:
- the long which has two ints in there
-
unpackInt
public static int unpackInt(long theLong, boolean isFirst) take a long- Parameters:
theLong
- to unpackisFirst
- true for first, false for second- Returns:
- one of the packed ints, first or second
-
get
Get a specific index of an array or collection (note for collections and iterating, it is more efficient to get an iterator and iterate- Parameters:
arrayOrCollection
-index
-- Returns:
- the object at that index
-
toStringSafe
fail safe toString for Exception blocks, and include the stack if there is a problem with toString()- Parameters:
object
-- Returns:
- the toStringSafe string
-
booleanValue
get the boolean value for an object, cant be null or blank- Parameters:
object
-- Returns:
- the boolean
-
booleanValue
get the boolean value for an object- Parameters:
object
-defaultBoolean
- if object is null or empty- Returns:
- the boolean
-
booleanObjectValue
get the Boolean value for an object- Parameters:
object
-- Returns:
- the Boolean or null if null or empty
-
nullOrBlank
is an object null or blank- Parameters:
object
-- Returns:
- true if null or blank
-
getter
public static Method getter(Class theClass, String fieldName, boolean callOnSupers, boolean throwExceptionIfNotFound) get a getter method object for a class, potentially in superclasses- Parameters:
theClass
-fieldName
-callOnSupers
- true if superclasses should be looked in for the getterthrowExceptionIfNotFound
- will throw runtime exception if not found- Returns:
- the getter object or null if not found (or exception if param is set)
-
getterHelper
public static Method getterHelper(Class theClass, String fieldName, String getterName, boolean callOnSupers, boolean throwExceptionIfNotFound) get a setter method object for a class, potentially in superclasses- Parameters:
theClass
-fieldName
-getterName
- name of settercallOnSupers
- true if superclasses should be looked in for the setterthrowExceptionIfNotFound
- will throw runtime exception if not found- Returns:
- the setter object or null if not found (or exception if param is set)
-
getterNameFromPropertyName
generate getBb from bb- Parameters:
propertyName
-- Returns:
- the getter
-
iserNameFromPropertyName
generate getBb from bb- Parameters:
propertyName
-- Returns:
- the getter
-
getters
public static Set<Method> getters(Class theClass, Class superclassToStopAt, Class<? extends Annotation> markerAnnotation, Boolean includeAnnotation) get all getters from a class, including superclasses (if specified) (up to and including the specified superclass). ignore a certain marker annotation, or only include it. Dont get static or final getters, and get getters of all types- Parameters:
theClass
- to look for fields insuperclassToStopAt
- to go up to or null to go up to ObjectmarkerAnnotation
- if this is not null, then if the field has this annotation, then do not include in list (if includeAnnotation is false)includeAnnotation
- true if the attribute should be included if annotation is present, false if exclude- Returns:
- the set of field names or empty set if none
-
isGetter
if the method name starts with get, and takes no args, and returns something, then getter- Parameters:
method
-- Returns:
- true if getter
-
assignSetter
public static void assignSetter(Object invokeOn, String fieldName, Object dataToAssign, boolean typeCast) assign data to a setter. Will find the field in superclasses, will typecast, and will override security (private, protected, etc)- Parameters:
invokeOn
- to call on or null for staticfieldName
- method name to calldataToAssign
- datatypeCast
- will typecast if true- Throws:
RuntimeException
- if not there
-
isSetter
if the method name starts with get, and takes no args, and returns something, then getter- Parameters:
method
-- Returns:
- true if getter
-
setter
public static Method setter(Class theClass, String fieldName, boolean callOnSupers, boolean throwExceptionIfNotFound) get a setter method object for a class, potentially in superclasses- Parameters:
theClass
-fieldName
-callOnSupers
- true if superclasses should be looked in for the setterthrowExceptionIfNotFound
- will throw runtime exception if not found- Returns:
- the setter object or null if not found (or exception if param is set)
-
setterHelper
public static Method setterHelper(Class theClass, String fieldName, String setterName, boolean callOnSupers, boolean throwExceptionIfNotFound) get a setter method object for a class, potentially in superclasses- Parameters:
theClass
-fieldName
-setterName
- name of settercallOnSupers
- true if superclasses should be looked in for the setterthrowExceptionIfNotFound
- will throw runtime exception if not found- Returns:
- the setter object or null if not found (or exception if param is set)
-
setterNameFromPropertyName
generate setBb from bb- Parameters:
propertyName
-- Returns:
- the setter
-
setters
public static Set<Method> setters(Class theClass, Class superclassToStopAt, Class<?> fieldType, boolean includeSuperclassToStopAt, Class<? extends Annotation> markerAnnotation, boolean includeAnnotation) get all setters from a class, including superclasses (if specified)- Parameters:
theClass
- to look for fields insuperclassToStopAt
- to go up to or null to go up to ObjectfieldType
- is the type of the field to getincludeSuperclassToStopAt
- if we should include the superclassmarkerAnnotation
- if this is not null, then if the field has this annotation, then do not include in list (if includeAnnotation is false)includeAnnotation
- true if the attribute should be included if annotation is present, false if exclude- Returns:
- the set of fields (wont return null)
-
propertyName
If this is a getter or setter, then get the property name- Parameters:
method
-- Returns:
- the property name
-
propertyType
use reflection to get a property type based on getter or setter or field- Parameters:
theClass
-propertyName
-- Returns:
- the property type
-
typeCast
If necessary, convert an object to another type. if type is Object.class, just return the input. Do not convert null to an empty primitive- Type Parameters:
T
- is template type- Parameters:
value
-theClass
-- Returns:
- the object of that instance converted into something else
-
removeEnd
remove end if there- Parameters:
str
-remove
-
-
endsWith
- Parameters:
str
-end
-- Returns:
- true if ends with
-
newFileUniqueName
public static File newFileUniqueName(String parentDirName, String namePrefix, String nameSuffix, boolean createFile) make a new file in the name prefix dir. If parent dir name is c:\temp and namePrefix is grouperDdl and nameSuffix is sql, then the file will be: c:\temp\grouperDdl_20080721_13_45_43_123.sql If the file exists, it will make a new filename, and create the empty file, and return it
- Parameters:
parentDirName
- can be blank for current dirnamePrefix
- the part before the date partnameSuffix
- the last part of file name (can contain dot or will be the extensioncreateFile
- true to create the file- Returns:
- the created file
-
dateValue
Convert an object to a java.util.Date. allows, dates, null, blank, yyyymmdd or yyyymmdd hh24:mm:ss or yyyy/MM/dd HH:mm:ss.SSS
- Parameters:
inputObject
- is the String or Date to convert- Returns:
- the Date
-
isBlank
See if the input is null or if string, if it is empty or blank (whitespace)- Parameters:
input
-- Returns:
- true if blank
-
typeCast
public static <T> T typeCast(Object value, Class<T> theClass, boolean convertNullToDefaultPrimitive, boolean useNewInstanceHooks) If necessary, convert an object to another type. if type is Object.class, just return the input- Type Parameters:
T
- is the type to return- Parameters:
value
-theClass
-convertNullToDefaultPrimitive
- if the value is null, and theClass is primitive, should we convert the null to a primitive default valueuseNewInstanceHooks
- if theClass is not recognized, then honor the string "null", "newInstance", or get a constructor with one param, and call it- Returns:
- the object of that instance converted into something else
-
isScalar
see if a class is a scalar (not bean, not array or list, etc)- Parameters:
type
-- Returns:
- true if scalar
-
toTimestamp
Convert a string or object to a timestamp (could be string, date, timestamp, etc) yyyymmdd or yyyy/MM/dd HH:mm:ss or yyyy/MM/dd HH:mm:ss.SSS or yyyy/MM/dd HH:mm:ss.SSSSSS
- Parameters:
input
-- Returns:
- the timestamp
- Throws:
RuntimeException
- if invalid format
-
removeEnd
Removes a substring only if it is at the end of a source string, otherwise returns the source string.
A
null
source string will returnnull
. An empty ("") source string will return the empty string. Anull
search string will return the source string.StringUtils.removeEnd(null, *) = null StringUtils.removeEnd("", *) = "" StringUtils.removeEnd(*, null) = * StringUtils.removeEnd("www.domain.com", ".com.") = "www,domain" StringUtils.removeEnd("www.domain.com", ".com") = "www.domain" StringUtils.removeEnd("www.domain.com", "domain") = "www.domain.com" StringUtils.removeEnd("abc", "") = "abc"
- Parameters:
str
- the source String to search, may be nullremove
- the String to search for and remove, may be null- Returns:
- the substring with the string removed if found,
null
if null String input - Since:
- 2.1
-
stringValue
convert an object to a string- Parameters:
input
- is the object to convert- Returns:
- the String conversion of the object
-
timestampToString
Convert a timestamp into a string: yyyy/MM/dd HH:mm:ss.SSS- Parameters:
timestamp
-- Returns:
- the string representation
-
stringValue
convert a date to the standard string yyyymmdd- Parameters:
date
-- Returns:
- the string value
-
stringToTimestamp
convert a string to timestamp based on the following formats: yyyyMMdd yyyy/MM/dd HH:mm:ss yyyy/MM/dd HH:mm:ss.SSS yyyy/MM/dd HH:mm:ss.SSSSSS
- Parameters:
input
-- Returns:
- the timestamp object
-
bigDecimalObjectValue
Convert an object to a byte, allow nulls- Parameters:
input
-- Returns:
- the boolean object value
-
byteObjectValue
Convert an object to a byte, allow nulls- Parameters:
input
-- Returns:
- the boolean object value
-
byteValue
convert an object to a byte- Parameters:
input
-- Returns:
- the byte
-
doubleObjectValue
get the Double value of an object- Parameters:
input
- is a number or StringallowNullBlank
- used to default to false, if true, return null if nul inputted- Returns:
- the Double equivalent
-
doubleObjectValue
get the Double value of an object- Parameters:
input
- is a number or StringallowNullBlank
- used to default to false, if true, return null if nul inputted- Returns:
- the Double equivalent
-
doubleValue
get the double value of an object- Parameters:
input
- is a number or String- Returns:
- the double equivalent
-
doubleValueNoError
get the double value of an object, do not throw an exception if there is an error- Parameters:
input
- is a number or String- Returns:
- the double equivalent
-
floatObjectValue
get the Float value of an object- Parameters:
input
- is a number or StringallowNullBlank
- true if allow null or blank- Returns:
- the Float equivalent
-
floatValue
get the float value of an object- Parameters:
input
- is a number or String- Returns:
- the float equivalent
-
floatValueNoError
get the float value of an object, do not throw an exception if there is an error- Parameters:
input
- is a number or String- Returns:
- the float equivalent
-
intObjectValue
get the Integer value of an object- Parameters:
input
- is a number or StringallowNullBlank
- true if convert null or blank to null- Returns:
- the Integer equivalent
-
intValue
convert an object to a int- Parameters:
input
-- Returns:
- the number
-
intValue
convert an object to a int- Parameters:
input
-valueIfNull
- is if the input is null or empty, return this value- Returns:
- the number
-
intValueNoError
get the int value of an object, do not throw an exception if there is an error- Parameters:
input
- is a number or String- Returns:
- the int equivalent
-
longObjectValue
get the Long value of an object- Parameters:
input
- is a number or StringallowNullBlank
- true if null or blank converts to null- Returns:
- the Long equivalent
-
longValue
convert an object to a long- Parameters:
input
-- Returns:
- the number
-
longValue
convert an object to a long- Parameters:
input
-valueIfNull
- is if the input is null or empty, return this value- Returns:
- the number
-
longValueNoError
get the long value of an object, do not throw an exception if there is an error- Parameters:
input
- is a number or String- Returns:
- the long equivalent
-
shortObjectValue
get the Short value of an object. converts null or blank to null- Parameters:
input
- is a number or String- Returns:
- the Long equivalent
-
shortValue
convert an object to a short- Parameters:
input
-- Returns:
- the number
-
charObjectValue
get the Character wrapper value for the input- Parameters:
input
- allow null, return null- Returns:
- the Character object wrapper
-
charValue
convert an object to a char- Parameters:
input
-- Returns:
- the number
-
createParentDirectories
Create the parent directories for a file if they do not already exist- Parameters:
file
-
-
saveStringIntoFile
save a string into a file, file does not have to exist- Parameters:
file
- is the file to save tocontents
- is the contents of the file
-
saveStringIntoFile
public static boolean saveStringIntoFile(File file, String contents, boolean onlyIfDifferentContents, boolean ignoreWhitespace) save a string into a file, file does not have to exist- Parameters:
file
- is the file to save tocontents
- is the contents of the fileonlyIfDifferentContents
- true if only saving due to different contentsignoreWhitespace
- true to ignore whitespace- Returns:
- true if contents were saved (thus different if param set)
-
writeStringToFile
Writes data to a file. The file will be created if it does not exist.
There is no readFileToString method without encoding parameter because the default encoding can differ between platforms and therefore results in inconsistent results.
- Parameters:
file
- the file to write.data
- The content to write to the file.encoding
- encoding to use- Throws:
IOException
- in case of an I/O errorUnsupportedEncodingException
- if the encoding is not supported by the VM
-
readFileIntoStringUtf8
- Parameters:
file
- is the file to read into a string- Returns:
- String
-
readFileIntoString
- Parameters:
file
- is the file to read into a string- Returns:
- String
-
readResourceIntoString
- Parameters:
resourceName
- is the string resource from classpath to read (e.g. grouper.properties)allowNull
- is true if its ok if the resource is null or if it is not found or blank or whatever.- Returns:
- String or null if allowed or RuntimeException if not allowed
-
readResourceIntoString
read resource into string- Parameters:
resourceName
-classInJar
- if not null, then look for the jar where this file is, and look in the same dir- Returns:
- the properties or null if not exist
-
readFileToString
Reads the contents of a file into a String.
There is no readFileToString method without encoding parameter because the default encoding can differ between platforms and therefore results in inconsistent results.
- Parameters:
file
- the file to read.encoding
- the encoding to use- Returns:
- The file contents or null if read failed.
- Throws:
IOException
- in case of an I/O error
-
replaceWhitespaceWithSpace
replace all whitespace with space- Parameters:
input
-- Returns:
- the string
-
closeQuietly
Unconditionally close anInputStream
. Equivalent toInputStream.close()
, except any exceptions will be ignored.- Parameters:
input
- A (possibly null) InputStream
-
closeQuietly
Unconditionally close anOutputStream
. Equivalent toOutputStream.close()
, except any exceptions will be ignored.- Parameters:
output
- A (possibly null) OutputStream
-
closeQuietly
Unconditionally close anReader
. Equivalent toReader.close()
, except any exceptions will be ignored.- Parameters:
input
- A (possibly null) Reader
-
closeQuietly
close a writer quietly- Parameters:
writer
-
-
toString
Get the contents of anInputStream
as a String.- Parameters:
input
- theInputStream
to read fromencoding
- The name of a supported character encoding. See the IANA Charset Registry for a list of valid encoding types.- Returns:
- the requested
String
- Throws:
IOException
- In case of an I/O problem
-
copy
Copy and convert bytes from anInputStream
to chars on aWriter
, using the specified encoding.- Parameters:
input
- theInputStream
to read fromoutput
- theWriter
to write toencoding
- The name of a supported character encoding. See the IANA Charset Registry for a list of valid encoding types.- Throws:
IOException
- In case of an I/O problem
-
copy
Copy chars from aReader
to aWriter
.- Parameters:
input
- theReader
to read fromoutput
- theWriter
to write to- Returns:
- the number of characters copied
- Throws:
IOException
- In case of an I/O problem
-
convertLongToChar
this method takes a long (less than 62) and converts it to a 1 character string (a-z, A-Z, 0-9)- Parameters:
theLong
- is the long (less than 62) to convert to a 1 character string- Returns:
- a one character string
-
convertLongToCharSmall
this method takes a long (less than 36) and converts it to a 1 character string (A-Z, 0-9)- Parameters:
theLong
- is the long (less than 36) to convert to a 1 character string- Returns:
- a one character string
-
convertLongToString
convert a long to a string by converting it to base 62 (26 lower, 26 upper, 10 digits)- Parameters:
theLong
- is the long to convert- Returns:
- the String conversion of this
-
convertLongToStringSmall
convert a long to a string by converting it to base 36 (26 upper, 10 digits)- Parameters:
theLong
- is the long to convert- Returns:
- the String conversion of this
-
incrementChar
public static char incrementChar(char theChar) increment a character (A-Z then 0-9)- Parameters:
theChar
-- Returns:
- the value
-
incrementStringInt
public static char[] incrementStringInt(char[] string) Increment a string with A-Z and 0-9 (no lower case so case insensitive apps like windows IE will still work)- Parameters:
string
-- Returns:
- the value
-
propertiesFromResourceName
read properties from a resource, dont modify the properties returned since they are cached- Parameters:
resourceName
-- Returns:
- the properties
-
propertiesCacheClear
public static void propertiesCacheClear()clear properties cache (e.g. for testing) -
propertiesFromFile
read properties from file- Parameters:
file
-- Returns:
- properties
-
propertiesFromResourceName
public static Properties propertiesFromResourceName(String resourceName, boolean useCache, boolean exceptionIfNotExist, Class<?> classInJar, StringBuilder callingLog) read properties from a resource, dont modify the properties returned since they are cached- Parameters:
resourceName
-useCache
-exceptionIfNotExist
-classInJar
- if not null, then look for the jar where this file is, and look in the same dircallingLog
-- Returns:
- the properties or null if not exist
-
enumValueOfIgnoreCase
public static <E extends Enum<?>> E enumValueOfIgnoreCase(Class<E> theEnumClass, String string, boolean exceptionOnNotFound) throws RuntimeException do a case-insensitive matching- Type Parameters:
E
- generic type- Parameters:
theEnumClass
- class of the enumstring
-exceptionOnNotFound
- true if exception should be thrown on not found- Returns:
- the enum or null or exception if not found
- Throws:
RuntimeException
- if there is a problem
-
propertyValue
this assumes the property exists, and is a simple property- Parameters:
object
-property
-- Returns:
- the value
-
propertiesValue
get a value (trimmed to e) from a property file- Parameters:
properties
-key
-- Returns:
- the property value
-
propertiesValue
public static String propertiesValue(Properties properties, Map<String, String> overrideMap, String key) get a value (trimmed to e) from a property file- Parameters:
properties
-overrideMap
- for testing, to override some properties valueskey
-- Returns:
- the property value
-
propertiesValue
public static String propertiesValue(Properties properties, Map<String, String> overrideMap, Map<String, String> overrideMap2, String key) get a value (trimmed to e) from a property file- Parameters:
properties
-overrideMap
- for testing or threadlocal, to override some properties valuesoverrideMap2
- for testing, to provide some properties valueskey
-- Returns:
- the property value
-
substituteCommonVars
substitute common vars like $space$ and $newline$- Parameters:
string
-- Returns:
- the string
-
propertiesValueBoolean
public static boolean propertiesValueBoolean(Properties properties, String propertyName, boolean defaultValue) get a boolean property, or the default if cant find- Parameters:
properties
-propertyName
-defaultValue
-- Returns:
- the boolean
-
propertiesValueBoolean
public static boolean propertiesValueBoolean(String resourceName, Properties properties, Map<String, String> overrideMap, String propertyName, boolean defaultValue, boolean required) get a boolean property, or the default if cant find. Validate also with a descriptive exception if problem- Parameters:
resourceName
-properties
-overrideMap
- for testing to override propertiespropertyName
-defaultValue
-required
-- Returns:
- the boolean
-
propertiesValueInt
public static int propertiesValueInt(String resourceName, Properties properties, Map<String, String> overrideMap, String propertyName, int defaultValue, boolean required) get an int property, or the default if cant find. Validate also with a descriptive exception if problem- Parameters:
resourceName
-properties
-overrideMap
- for testing to override propertiespropertyName
-defaultValue
-required
-- Returns:
- the int
-
propertiesValue
public static String propertiesValue(String resourceName, Properties properties, Map<String, String> overrideMap, String propertyName, boolean required) get a boolean property, or the default if cant find. Validate also with a descriptive exception if problem- Parameters:
resourceName
-properties
-overrideMap
- for threadlocal or testing to override propertiespropertyName
-required
-- Returns:
- the string
-
propertiesValueInt
public static int propertiesValueInt(Properties properties, Map<String, String> overrideMap, String propertyName, int defaultValue) get a int property, or the default if cant find- Parameters:
properties
-overrideMap
- for testing to override propertiespropertyName
-defaultValue
-- Returns:
- the int
-
propertiesValueInt
public static int propertiesValueInt(Properties properties, Map<String, String> overrideMap, Map<String, String> overrideMap2, String propertyName, int defaultValue) get a int property, or the default if cant find- Parameters:
properties
-overrideMap
- for testing to override propertiesoverrideMap2
-propertyName
-defaultValue
-- Returns:
- the int
-
propertiesValueBoolean
public static boolean propertiesValueBoolean(Properties properties, Map<String, String> overrideMap, String propertyName, boolean defaultValue) get a boolean property, or the default if cant find- Parameters:
properties
-overrideMap
- for testing to override propertiespropertyName
-defaultValue
-- Returns:
- the boolean
-
propertiesValueBoolean
public static boolean propertiesValueBoolean(Properties properties, Map<String, String> overrideMap, Map<String, String> overrideMap2, String propertyName, boolean defaultValue) get a boolean property, or the default if cant find- Parameters:
properties
-overrideMap
- for testing or threadlocal to override propertiesoverrideMap2
- for testing or threadlocal to override propertiespropertyName
-defaultValue
-- Returns:
- the boolean
-
toMap
keys and values go into map- Parameters:
keysAndValues
-- Returns:
- the map
-
closeQuietly
close a connection null safe and dont throw exception- Parameters:
connection
-
-
closeQuietly
close a statement null safe and dont throw exception- Parameters:
statement
-
-
closeQuietly
close a resultSet null safe and dont throw exception- Parameters:
resultSet
-
-
hostname
get the hostname of this machine- Returns:
- the hostname
-
isAscii
public static boolean isAscii(char input) is ascii char- Parameters:
input
-- Returns:
- true if ascii
-
lengthAscii
find the length of ascii chars (non ascii are counted as two)- Parameters:
input
-- Returns:
- the length of ascii chars
-
rollbackQuietly
rollback a connection quietly- Parameters:
connection
-
-
truncateAscii
find the length of ascii chars (non ascii are counted as two)- Parameters:
input
- is the string to operate onrequiredLength
- length we need the string to be- Returns:
- the length of ascii chars
-
readFromFileIfFile
if the input is a file, read string from file. if not, or if disabled from grouper.properties, return the input- Parameters:
in
-disableExternalFileLookup
-- Returns:
- the result
-
readFromFileIfFileUtf8
if the input is a file, read string from file. if not, or if disabled from grouper.properties, return the input- Parameters:
in
-disableExternalFileLookup
-- Returns:
- the result
-
stripPrefix
strip the prefix off- Parameters:
string
-prefix
-- Returns:
- the string without the prefix
-
readFromFileIfFileExists
if the input is a file, read string from file. if not, or if disabled from grouper.properties, return the input note, pass could have slashes in it... so only do this if file exists...- Parameters:
in
-disableExternalFileLookup
-- Returns:
- the result
-
main
- Throws:
Exception
-
mkdirs
Create directories, throw exception if not possible. This is will be ok if the directory already exists (will not delete it)- Parameters:
dir
-
-
equals
null safe string compare- Parameters:
first
-second
-- Returns:
- true if equal
-
isBlank
Checks if a String is whitespace, empty ("") or null.
isBlank(null) = true isBlank("") = true isBlank(" ") = true isBlank("bob") = false isBlank(" bob ") = false
- Parameters:
str
- the String to check, may be null- Returns:
true
if the String is null, empty or whitespace- Since:
- 2.0
-
isNotBlank
- Parameters:
str
-- Returns:
- true if not blank
-
trim
trim whitespace from string- Parameters:
str
-- Returns:
- trimmed string
-
equalsIgnoreCase
equalsignorecase- Parameters:
str1
-str2
-- Returns:
- true if the strings are equal ignore case
-
trimToEmpty
trim to empty, convert null to empty- Parameters:
str
-- Returns:
- trimmed
-
abbreviate
Abbreviates a String using ellipses. This will turn "Now is the time for all good men" into "Now is the time for..."
Specifically:
- If
str
is less thanmaxWidth
characters long, return it. - Else abbreviate it to
(substring(str, 0, max-3) + "...")
. - If
maxWidth
is less than4
, throw anIllegalArgumentException
. - In no case will it return a String of length greater than
maxWidth
.
StringUtils.abbreviate(null, *) = null StringUtils.abbreviate("", 4) = "" StringUtils.abbreviate("abcdefg", 6) = "abc..." StringUtils.abbreviate("abcdefg", 7) = "abcdefg" StringUtils.abbreviate("abcdefg", 8) = "abcdefg" StringUtils.abbreviate("abcdefg", 4) = "a..." StringUtils.abbreviate("abcdefg", 3) = IllegalArgumentException
- Parameters:
str
- the String to check, may be nullmaxWidth
- maximum length of result String, must be at least 4- Returns:
- abbreviated String,
null
if null String input - Throws:
IllegalArgumentException
- if the width is too small- Since:
- 2.0
- If
-
abbreviate
Abbreviates a String using ellipses. This will turn "Now is the time for all good men" into "...is the time for..."
Works like
abbreviate(String, int)
, but allows you to specify a "left edge" offset. Note that this left edge is not necessarily going to be the leftmost character in the result, or the first character following the ellipses, but it will appear somewhere in the result.In no case will it return a String of length greater than
maxWidth
.StringUtils.abbreviate(null, *, *) = null StringUtils.abbreviate("", 0, 4) = "" StringUtils.abbreviate("abcdefghijklmno", -1, 10) = "abcdefg..." StringUtils.abbreviate("abcdefghijklmno", 0, 10) = "abcdefg..." StringUtils.abbreviate("abcdefghijklmno", 1, 10) = "abcdefg..." StringUtils.abbreviate("abcdefghijklmno", 4, 10) = "abcdefg..." StringUtils.abbreviate("abcdefghijklmno", 5, 10) = "...fghi..." StringUtils.abbreviate("abcdefghijklmno", 6, 10) = "...ghij..." StringUtils.abbreviate("abcdefghijklmno", 8, 10) = "...ijklmno" StringUtils.abbreviate("abcdefghijklmno", 10, 10) = "...ijklmno" StringUtils.abbreviate("abcdefghijklmno", 12, 10) = "...ijklmno" StringUtils.abbreviate("abcdefghij", 0, 3) = IllegalArgumentException StringUtils.abbreviate("abcdefghij", 5, 6) = IllegalArgumentException
- Parameters:
str
- the String to check, may be nulloffset
- left edge of source StringmaxWidth
- maximum length of result String, must be at least 4- Returns:
- abbreviated String,
null
if null String input - Throws:
IllegalArgumentException
- if the width is too small- Since:
- 2.0
-
split
Splits the provided text into an array, using whitespace as the separator. Whitespace is defined by
Character.isWhitespace(char)
.The separator is not included in the returned String array. Adjacent separators are treated as one separator. For more control over the split use the StrTokenizer class.
A
null
input String returnsnull
.StringUtils.split(null) = null StringUtils.split("") = [] StringUtils.split("abc def") = ["abc", "def"] StringUtils.split("abc def") = ["abc", "def"] StringUtils.split(" abc ") = ["abc"]
- Parameters:
str
- the String to parse, may be null- Returns:
- an array of parsed Strings,
null
if null String input
-
split
Splits the provided text into an array, separator specified. This is an alternative to using StringTokenizer.
The separator is not included in the returned String array. Adjacent separators are treated as one separator. For more control over the split use the StrTokenizer class.
A
null
input String returnsnull
.StringUtils.split(null, *) = null StringUtils.split("", *) = [] StringUtils.split("a.b.c", '.') = ["a", "b", "c"] StringUtils.split("a..b.c", '.') = ["a", "b", "c"] StringUtils.split("a:b:c", '.') = ["a:b:c"] StringUtils.split("a\tb\nc", null) = ["a", "b", "c"] StringUtils.split("a b c", ' ') = ["a", "b", "c"]
- Parameters:
str
- the String to parse, may be nullseparatorChar
- the character used as the delimiter,null
splits on whitespace- Returns:
- an array of parsed Strings,
null
if null String input - Since:
- 2.0
-
split
Splits the provided text into an array, separators specified. This is an alternative to using StringTokenizer.
The separator is not included in the returned String array. Adjacent separators are treated as one separator. For more control over the split use the StrTokenizer class.
A
null
input String returnsnull
. Anull
separatorChars splits on whitespace.StringUtils.split(null, *) = null StringUtils.split("", *) = [] StringUtils.split("abc def", null) = ["abc", "def"] StringUtils.split("abc def", " ") = ["abc", "def"] StringUtils.split("abc def", " ") = ["abc", "def"] StringUtils.split("ab:cd:ef", ":") = ["ab", "cd", "ef"]
- Parameters:
str
- the String to parse, may be nullseparatorChars
- the characters used as the delimiters,null
splits on whitespace- Returns:
- an array of parsed Strings,
null
if null String input
-
split
Splits the provided text into an array with a maximum length, separators specified.
The separator is not included in the returned String array. Adjacent separators are treated as one separator.
A
null
input String returnsnull
. Anull
separatorChars splits on whitespace.If more than
max
delimited substrings are found, the last returned string includes all characters after the firstmax - 1
returned strings (including separator characters).StringUtils.split(null, *, *) = null StringUtils.split("", *, *) = [] StringUtils.split("ab de fg", null, 0) = ["ab", "cd", "ef"] StringUtils.split("ab de fg", null, 0) = ["ab", "cd", "ef"] StringUtils.split("ab:cd:ef", ":", 0) = ["ab", "cd", "ef"] StringUtils.split("ab:cd:ef", ":", 2) = ["ab", "cd:ef"]
- Parameters:
str
- the String to parse, may be nullseparatorChars
- the characters used as the delimiters,null
splits on whitespacemax
- the maximum number of elements to include in the array. A zero or negative value implies no limit- Returns:
- an array of parsed Strings,
null
if null String input
-
splitByWholeSeparator
Splits the provided text into an array, separator string specified.
The separator(s) will not be included in the returned String array. Adjacent separators are treated as one separator.
A
null
input String returnsnull
. Anull
separator splits on whitespace.StringUtils.split(null, *) = null StringUtils.split("", *) = [] StringUtils.split("ab de fg", null) = ["ab", "de", "fg"] StringUtils.split("ab de fg", null) = ["ab", "de", "fg"] StringUtils.split("ab:cd:ef", ":") = ["ab", "cd", "ef"] StringUtils.split("abstemiouslyaeiouyabstemiously", "aeiouy") = ["bst", "m", "sl", "bst", "m", "sl"] StringUtils.split("abstemiouslyaeiouyabstemiously", "aeiouy") = ["abstemiously", "abstemiously"]
- Parameters:
str
- the String to parse, may be nullseparator
- String containing the String to be used as a delimiter,null
splits on whitespace- Returns:
- an array of parsed Strings,
null
if null String was input
-
splitByWholeSeparator
Splits the provided text into an array, separator string specified. Returns a maximum of
max
substrings.The separator(s) will not be included in the returned String array. Adjacent separators are treated as one separator.
A
null
input String returnsnull
. Anull
separator splits on whitespace.StringUtils.splitByWholeSeparator(null, *, *) = null StringUtils.splitByWholeSeparator("", *, *) = [] StringUtils.splitByWholeSeparator("ab de fg", null, 0) = ["ab", "de", "fg"] StringUtils.splitByWholeSeparator("ab de fg", null, 0) = ["ab", "de", "fg"] StringUtils.splitByWholeSeparator("ab:cd:ef", ":", 2) = ["ab", "cd"] StringUtils.splitByWholeSeparator("abstemiouslyaeiouyabstemiously", "aeiouy", 2) = ["bst", "m"] StringUtils.splitByWholeSeparator("abstemiouslyaeiouyabstemiously", "aeiouy", 2) = ["abstemiously", "abstemiously"]
- Parameters:
str
- the String to parse, may be nullseparator
- String containing the String to be used as a delimiter,null
splits on whitespacemax
- the maximum number of elements to include in the returned array. A zero or negative value implies no limit.- Returns:
- an array of parsed Strings,
null
if null String was input
-
splitPreserveAllTokens
Splits the provided text into an array, using whitespace as the separator, preserving all tokens, including empty tokens created by adjacent separators. This is an alternative to using StringTokenizer. Whitespace is defined by
Character.isWhitespace(char)
.The separator is not included in the returned String array. Adjacent separators are treated as separators for empty tokens. For more control over the split use the StrTokenizer class.
A
null
input String returnsnull
.StringUtils.splitPreserveAllTokens(null) = null StringUtils.splitPreserveAllTokens("") = [] StringUtils.splitPreserveAllTokens("abc def") = ["abc", "def"] StringUtils.splitPreserveAllTokens("abc def") = ["abc", "", "def"] StringUtils.splitPreserveAllTokens(" abc ") = ["", "abc", ""]
- Parameters:
str
- the String to parse, may benull
- Returns:
- an array of parsed Strings,
null
if null String input - Since:
- 2.1
-
splitPreserveAllTokens
Splits the provided text into an array, separator specified, preserving all tokens, including empty tokens created by adjacent separators. This is an alternative to using StringTokenizer.
The separator is not included in the returned String array. Adjacent separators are treated as separators for empty tokens. For more control over the split use the StrTokenizer class.
A
null
input String returnsnull
.StringUtils.splitPreserveAllTokens(null, *) = null StringUtils.splitPreserveAllTokens("", *) = [] StringUtils.splitPreserveAllTokens("a.b.c", '.') = ["a", "b", "c"] StringUtils.splitPreserveAllTokens("a..b.c", '.') = ["a", "b", "c"] StringUtils.splitPreserveAllTokens("a:b:c", '.') = ["a:b:c"] StringUtils.splitPreserveAllTokens("a\tb\nc", null) = ["a", "b", "c"] StringUtils.splitPreserveAllTokens("a b c", ' ') = ["a", "b", "c"] StringUtils.splitPreserveAllTokens("a b c ", ' ') = ["a", "b", "c", ""] StringUtils.splitPreserveAllTokens("a b c ", ' ') = ["a", "b", "c", "", ""] StringUtils.splitPreserveAllTokens(" a b c", ' ') = ["", a", "b", "c"] StringUtils.splitPreserveAllTokens(" a b c", ' ') = ["", "", a", "b", "c"] StringUtils.splitPreserveAllTokens(" a b c ", ' ') = ["", a", "b", "c", ""]
- Parameters:
str
- the String to parse, may benull
separatorChar
- the character used as the delimiter,null
splits on whitespace- Returns:
- an array of parsed Strings,
null
if null String input - Since:
- 2.1
-
splitPreserveAllTokens
Splits the provided text into an array, separators specified, preserving all tokens, including empty tokens created by adjacent separators. This is an alternative to using StringTokenizer.
The separator is not included in the returned String array. Adjacent separators are treated as separators for empty tokens. For more control over the split use the StrTokenizer class.
A
null
input String returnsnull
. Anull
separatorChars splits on whitespace.StringUtils.splitPreserveAllTokens(null, *) = null StringUtils.splitPreserveAllTokens("", *) = [] StringUtils.splitPreserveAllTokens("abc def", null) = ["abc", "def"] StringUtils.splitPreserveAllTokens("abc def", " ") = ["abc", "def"] StringUtils.splitPreserveAllTokens("abc def", " ") = ["abc", "", def"] StringUtils.splitPreserveAllTokens("ab:cd:ef", ":") = ["ab", "cd", "ef"] StringUtils.splitPreserveAllTokens("ab:cd:ef:", ":") = ["ab", "cd", "ef", ""] StringUtils.splitPreserveAllTokens("ab:cd:ef::", ":") = ["ab", "cd", "ef", "", ""] StringUtils.splitPreserveAllTokens("ab::cd:ef", ":") = ["ab", "", cd", "ef"] StringUtils.splitPreserveAllTokens(":cd:ef", ":") = ["", cd", "ef"] StringUtils.splitPreserveAllTokens("::cd:ef", ":") = ["", "", cd", "ef"] StringUtils.splitPreserveAllTokens(":cd:ef:", ":") = ["", cd", "ef", ""]
- Parameters:
str
- the String to parse, may benull
separatorChars
- the characters used as the delimiters,null
splits on whitespace- Returns:
- an array of parsed Strings,
null
if null String input - Since:
- 2.1
-
splitPreserveAllTokens
Splits the provided text into an array with a maximum length, separators specified, preserving all tokens, including empty tokens created by adjacent separators.
The separator is not included in the returned String array. Adjacent separators are treated as separators for empty tokens. Adjacent separators are treated as one separator.
A
null
input String returnsnull
. Anull
separatorChars splits on whitespace.If more than
max
delimited substrings are found, the last returned string includes all characters after the firstmax - 1
returned strings (including separator characters).StringUtils.splitPreserveAllTokens(null, *, *) = null StringUtils.splitPreserveAllTokens("", *, *) = [] StringUtils.splitPreserveAllTokens("ab de fg", null, 0) = ["ab", "cd", "ef"] StringUtils.splitPreserveAllTokens("ab de fg", null, 0) = ["ab", "cd", "ef"] StringUtils.splitPreserveAllTokens("ab:cd:ef", ":", 0) = ["ab", "cd", "ef"] StringUtils.splitPreserveAllTokens("ab:cd:ef", ":", 2) = ["ab", "cd:ef"] StringUtils.splitPreserveAllTokens("ab de fg", null, 2) = ["ab", " de fg"] StringUtils.splitPreserveAllTokens("ab de fg", null, 3) = ["ab", "", " de fg"] StringUtils.splitPreserveAllTokens("ab de fg", null, 4) = ["ab", "", "", "de fg"]
- Parameters:
str
- the String to parse, may benull
separatorChars
- the characters used as the delimiters,null
splits on whitespacemax
- the maximum number of elements to include in the array. A zero or negative value implies no limit- Returns:
- an array of parsed Strings,
null
if null String input - Since:
- 2.1
-
join
Joins the elements of the provided array into a single String containing the provided list of elements.
No separator is added to the joined String. Null objects or empty strings within the array are represented by empty strings.
StringUtils.join(null) = null StringUtils.join([]) = "" StringUtils.join([null]) = "" StringUtils.join(["a", "b", "c"]) = "abc" StringUtils.join([null, "", "a"]) = "a"
- Parameters:
array
- the array of values to join together, may be null- Returns:
- the joined String,
null
if null array input - Since:
- 2.0
-
join
Joins the elements of the provided array into a single String containing the provided list of elements.
No delimiter is added before or after the list. Null objects or empty strings within the array are represented by empty strings.
StringUtils.join(null, *) = null StringUtils.join([], *) = "" StringUtils.join([null], *) = "" StringUtils.join(["a", "b", "c"], ';') = "a;b;c" StringUtils.join(["a", "b", "c"], null) = "abc" StringUtils.join([null, "", "a"], ';') = ";;a"
- Parameters:
array
- the array of values to join together, may be nullseparator
- the separator character to use- Returns:
- the joined String,
null
if null array input - Since:
- 2.0
-
join
Joins the elements of the provided array into a single String containing the provided list of elements.
No delimiter is added before or after the list. A
null
separator is the same as an empty String (""). Null objects or empty strings within the array are represented by empty strings.StringUtils.join(null, *) = null StringUtils.join([], *) = "" StringUtils.join([null], *) = "" StringUtils.join(["a", "b", "c"], "--") = "a--b--c" StringUtils.join(["a", "b", "c"], null) = "abc" StringUtils.join(["a", "b", "c"], "") = "abc" StringUtils.join([null, "", "a"], ',') = ",,a"
- Parameters:
array
- the array of values to join together, may be nullseparator
- the separator character to use, null treated as ""- Returns:
- the joined String,
null
if null array input
-
join
Joins the elements of the provided
Iterator
into a single String containing the provided elements.No delimiter is added before or after the list. Null objects or empty strings within the iteration are represented by empty strings.
See the examples here:
join(Object[],char)
.- Parameters:
iterator
- theIterator
of values to join together, may be nullseparator
- the separator character to use- Returns:
- the joined String,
null
if null iterator input - Since:
- 2.0
-
join
Joins the elements of the provided
Iterator
into a single String containing the provided elements.No delimiter is added before or after the list. A
null
separator is the same as an empty String ("").See the examples here:
join(Object[],String)
.- Parameters:
iterator
- theIterator
of values to join together, may be nullseparator
- the separator character to use, null treated as ""- Returns:
- the joined String,
null
if null iterator input
-
defaultString
Returns either the passed in String, or if the String is
null
, an empty String ("").StringUtils.defaultString(null) = "" StringUtils.defaultString("") = "" StringUtils.defaultString("bat") = "bat"
- Parameters:
str
- the String to check, may be null- Returns:
- the passed in String, or the empty String if it
was
null
- See Also:
-
defaultString
Returns either the passed in String, or if the String is
null
, the value ofdefaultStr
.StringUtils.defaultString(null, "NULL") = "NULL" StringUtils.defaultString("", "NULL") = "" StringUtils.defaultString("bat", "NULL") = "bat"
- Parameters:
str
- the String to check, may be nulldefaultStr
- the default String to return if the input isnull
, may be null- Returns:
- the passed in String, or the default if it was
null
- See Also:
-
defaultIfEmpty
Returns either the passed in String, or if the String is empty or
null
, the value ofdefaultStr
.StringUtils.defaultIfEmpty(null, "NULL") = "NULL" StringUtils.defaultIfEmpty("", "NULL") = "NULL" StringUtils.defaultIfEmpty("bat", "NULL") = "bat"
- Parameters:
str
- the String to check, may be nulldefaultStr
- the default String to return if the input is empty ("") ornull
, may be null- Returns:
- the passed in String, or the default
-
capitalize
Capitalizes a String changing the first letter to title case as per
ACharacter.toTitleCase(char)
. No other letters are changed.null
input String returnsnull
.StringUtils.capitalize(null) = null StringUtils.capitalize("") = "" StringUtils.capitalize("cat") = "Cat" StringUtils.capitalize("cAt") = "CAt"
- Parameters:
str
- the String to capitalize, may be null- Returns:
- the capitalized String,
null
if null String input - Since:
- 2.0
-
contains
Checks if String contains a search character, handling
null
. This method usesString.indexOf(int)
.A
null
or empty ("") String will returnfalse
.StringUtils.contains(null, *) = false StringUtils.contains("", *) = false StringUtils.contains("abc", 'a') = true StringUtils.contains("abc", 'z') = false
- Parameters:
str
- the String to check, may be nullsearchChar
- the character to find- Returns:
- true if the String contains the search character,
false if not or
null
string input - Since:
- 2.0
-
contains
Checks if String contains a search String, handling
null
. This method usesString.indexOf(int)
.A
null
String will returnfalse
.StringUtils.contains(null, *) = false StringUtils.contains(*, null) = false StringUtils.contains("", "") = true StringUtils.contains("abc", "") = true StringUtils.contains("abc", "a") = true StringUtils.contains("abc", "z") = false
- Parameters:
str
- the String to check, may be nullsearchStr
- the String to find, may be null- Returns:
- true if the String contains the search String,
false if not or
null
string input - Since:
- 2.0
-
equals
Compares two objects for equality, where either one or both objects may be
null
.ObjectUtils.equals(null, null) = true ObjectUtils.equals(null, "") = false ObjectUtils.equals("", null) = false ObjectUtils.equals("", "") = true ObjectUtils.equals(Boolean.TRUE, null) = false ObjectUtils.equals(Boolean.TRUE, "true") = false ObjectUtils.equals(Boolean.TRUE, Boolean.TRUE) = true ObjectUtils.equals(Boolean.TRUE, Boolean.FALSE) = false
- Parameters:
object1
- the first object, may benull
object2
- the second object, may benull
- Returns:
true
if the values of both objects are the same
-
getFullStackTrace
A way to get the entire nested stack-trace of an throwable.
- Parameters:
throwable
- theThrowable
to be examined- Returns:
- the nested stack trace, with the root cause first
- Since:
- 2.0
-
getThrowables
Returns the list of
Throwable
objects in the exception chain.A throwable without cause will return an array containing one element - the input throwable. A throwable with one cause will return an array containing two elements. - the input throwable and the cause throwable. A
null
throwable will return an array size zero.- Parameters:
throwable
- the throwable to inspect, may be null- Returns:
- the array of throwables, never null
-
isNestedThrowable
Checks whether this
Throwable
class can store a cause.This method does not check whether it actually does store a cause.
- Parameters:
throwable
- theThrowable
to examine, may be null- Returns:
- boolean
true
if nested otherwisefalse
- Since:
- 2.0
-
isThrowableNested
public static boolean isThrowableNested()Checks if the Throwable class has a
getCause
method.This is true for JDK 1.4 and above.
- Returns:
- true if Throwable is nestable
- Since:
- 2.0
-
getCause
Introspects the
Throwable
to obtain the cause.The method searches for methods with specific names that return a
Throwable
object. This will pick up most wrapping exceptions, including those from JDK 1.4, andThe default list searched for are:
getCause()
getNextException()
getTargetException()
getException()
getSourceException()
getRootCause()
getCausedByException()
getNested()
In the absence of any such method, the object is inspected for a
detail
field assignable to aThrowable
.If none of the above is found, returns
null
.- Parameters:
throwable
- the throwable to introspect for a cause, may be null- Returns:
- the cause of the
Throwable
,null
if none found or null throwable input - Since:
- 1.0
-
getCause
Introspects the
Throwable
to obtain the cause.- Try known exception types.
- Try the supplied array of method names.
- Try the field 'detail'.
A
null
set of method names means use the default set. Anull
in the set of method names will be ignored.- Parameters:
throwable
- the throwable to introspect for a cause, may be nullmethodNames
- the method names, null treated as default set- Returns:
- the cause of the
Throwable
,null
if none found or null throwable input - Since:
- 1.0
-
argKey
from a command line arg, get the key. e.g. if input is --whatever=something then key is whatever, value is something- Parameters:
option
-- Returns:
- the key
-
argValue
from a command line arg, get the key. e.g. if input is --whatever=something then key is whatever, value is something- Parameters:
option
-- Returns:
- the value
-
argMap
add an option: --whatever=val to a map of options where --whatever is key, and val is value- Parameters:
args
-- Returns:
- the map
-
argMapString
public static String argMapString(Map<String, String> argMap, Map<String, String> argMapNotUsed, String key, boolean required) get the value from the argMap, throw exception if not there and required- Parameters:
argMap
-argMapNotUsed
-key
-required
-- Returns:
- the value or null or exception
-
argMapBoolean
public static boolean argMapBoolean(Map<String, String> argMap, Map<String, String> argMapNotUsed, String key, boolean required, boolean defaultValue) get the value from the argMap, throw exception if not there and required- Parameters:
argMap
-argMapNotUsed
-key
-required
-defaultValue
-- Returns:
- the value or null or exception
-
argMapTimestamp
public static Timestamp argMapTimestamp(Map<String, String> argMap, Map<String, String> argMapNotUsed, String key) get the value from the argMap, throw exception if not there and required- Parameters:
argMap
-argMapNotUsed
-key
-- Returns:
- the value or null or exception
-
argMapBoolean
public static Boolean argMapBoolean(Map<String, String> argMap, Map<String, String> argMapNotUsed, String key) get the value from the argMap- Parameters:
argMap
-argMapNotUsed
-key
-- Returns:
- the value or null or exception
-
argMapSet
public static Set<String> argMapSet(Map<String, String> argMap, Map<String, String> argMapNotUsed, String key, boolean required) get the set from comma separated from the argMap, throw exception if not there and required- Parameters:
argMap
-argMapNotUsed
-key
-required
-- Returns:
- the value or null or exception
-
argMapList
public static List<String> argMapList(Map<String, String> argMap, Map<String, String> argMapNotUsed, String key, boolean required) get the list from comma separated from the argMap, throw exception if not there and required- Parameters:
argMap
-argMapNotUsed
-key
-required
-- Returns:
- the value or null or exception
-
argMapFileList
public static List<String> argMapFileList(Map<String, String> argMap, Map<String, String> argMapNotUsed, String key, boolean required) get the list from comma separated from the argMap, throw exception if not there and required- Parameters:
argMap
-argMapNotUsed
-key
-required
-- Returns:
- the value or null or exception
-
responseBodyAsString
for testing, get the response body as a string- Parameters:
method
-- Returns:
- the string of response body
-
copy
Copy bytes from anInputStream
to chars on aWriter
using the default character encoding of the platform.This method buffers the input internally, so there is no need to use a
BufferedInputStream
.This method uses
InputStreamReader
.- Parameters:
input
- theInputStream
to read fromoutput
- theWriter
to write to- Throws:
NullPointerException
- if the input or output is nullIOException
- if an I/O error occurs- Since:
- Commons IO 1.1
-
copy
Copy bytes from anInputStream
to anOutputStream
.This method buffers the input internally, so there is no need to use a
BufferedInputStream
.Large streams (over 2GB) will return a bytes copied value of
-1
after the copy has completed since the correct number of bytes cannot be returned as an int. For large streams use thecopyLarge(InputStream, OutputStream)
method.- Parameters:
input
- theInputStream
to read fromoutput
- theOutputStream
to write to- Returns:
- the number of bytes copied
- Throws:
NullPointerException
- if the input or output is nullIOException
- if an I/O error occursArithmeticException
- if the byte count is too large- Since:
- Commons IO 1.1
-
copyLarge
Copy bytes from a large (over 2GB)InputStream
to anOutputStream
.This method buffers the input internally, so there is no need to use a
BufferedInputStream
.- Parameters:
input
- theInputStream
to read fromoutput
- theOutputStream
to write to- Returns:
- the number of bytes copied
- Throws:
NullPointerException
- if the input or output is nullIOException
- if an I/O error occurs- Since:
- Commons IO 1.3
-
jarFile
get a jar file from a sample class- Parameters:
sampleClass
-- Returns:
- the jar file
-
stripLastSlashIfExists
strip the last slash (/ or \) from a string if it exists- Parameters:
input
-- Returns:
- input - the last / or \
-
retrievePasswordFromStdin
retrieve a password from stdin- Parameters:
dontMask
-prompt
- to print to user- Returns:
- the password
-
retrievePasswordFromStdin
public static final char[] retrievePasswordFromStdin(InputStream in, String prompt) throws IOException - Parameters:
in
- stream to be used (e.g. System.in)prompt
- The prompt to display to the user.- Returns:
- The password as entered by the user.
- Throws:
IOException
-
propertyValidateValueRequired
public static boolean propertyValidateValueRequired(String resourceName, Properties properties, Map<String, String> overrideMap, String key, boolean exceptionOnError) make sure a value exists in properties- Parameters:
resourceName
-properties
-overrideMap
-key
-exceptionOnError
-- Returns:
- true if ok, false if not
-
uuid
generate a uuid- Returns:
- uuid
-
propertyValidateValueBoolean
public static boolean propertyValidateValueBoolean(String resourceName, Properties properties, Map<String, String> overrideMap, String key, boolean required, boolean exceptionOnError) make sure a value is boolean in properties- Parameters:
resourceName
-properties
-overrideMap
-key
-required
-exceptionOnError
-- Returns:
- true if ok, false if not
-
propertyValidateValueInt
public static boolean propertyValidateValueInt(String resourceName, Properties properties, Map<String, String> overrideMap, String key, boolean required, boolean exceptionOnError) make sure a value is int in properties- Parameters:
resourceName
-properties
-overrideMap
-key
-required
-exceptionOnError
-- Returns:
- true if ok, false if not
-
propertyValidateValueClass
public static boolean propertyValidateValueClass(String resourceName, Properties properties, Map<String, String> overrideMap, String key, Class<?> classType, boolean required, boolean exceptionOnError) make sure a property is a class of a certain type- Parameters:
resourceName
-properties
-overrideMap
-key
-classType
-required
-exceptionOnError
-- Returns:
- true if ok
-
stripStart
Strips any of a set of characters from the start of a String.
A
null
input String returnsnull
. An empty string ("") input returns the empty string.If the stripChars String is
null
, whitespace is stripped as defined byCharacter.isWhitespace(char)
.StringUtils.stripStart(null, *) = null StringUtils.stripStart("", *) = "" StringUtils.stripStart("abc", "") = "abc" StringUtils.stripStart("abc", null) = "abc" StringUtils.stripStart(" abc", null) = "abc" StringUtils.stripStart("abc ", null) = "abc " StringUtils.stripStart(" abc ", null) = "abc " StringUtils.stripStart("yxabc ", "xyz") = "abc "
- Parameters:
str
- the String to remove characters from, may be nullstripChars
- the characters to remove, null treated as whitespace- Returns:
- the stripped String,
null
if null String input
-
stripEnd
Strips any of a set of characters from the end of a String.
A
null
input String returnsnull
. An empty string ("") input returns the empty string.If the stripChars String is
null
, whitespace is stripped as defined byCharacter.isWhitespace(char)
.StringUtils.stripEnd(null, *) = null StringUtils.stripEnd("", *) = "" StringUtils.stripEnd("abc", "") = "abc" StringUtils.stripEnd("abc", null) = "abc" StringUtils.stripEnd(" abc", null) = " abc" StringUtils.stripEnd("abc ", null) = "abc" StringUtils.stripEnd(" abc ", null) = " abc" StringUtils.stripEnd(" abcyx", "xyz") = " abc"
- Parameters:
str
- the String to remove characters from, may be nullstripChars
- the characters to remove, null treated as whitespace- Returns:
- the stripped String,
null
if null String input
-
repeat
Repeat a String
repeat
times to form a new String.StringUtils.repeat(null, 2) = null StringUtils.repeat("", 0) = "" StringUtils.repeat("", 2) = "" StringUtils.repeat("a", 3) = "aaa" StringUtils.repeat("ab", 2) = "abab" StringUtils.repeat("a", -2) = ""
- Parameters:
str
- the String to repeat, may be nullrepeat
- number of times to repeat str, negative treated as zero- Returns:
- a new String consisting of the original String repeated,
null
if null String input
-
rightPad
Right pad a String with spaces (' ').
The String is padded to the size of
size
.StringUtils.rightPad(null, *) = null StringUtils.rightPad("", 3) = " " StringUtils.rightPad("bat", 3) = "bat" StringUtils.rightPad("bat", 5) = "bat " StringUtils.rightPad("bat", 1) = "bat" StringUtils.rightPad("bat", -1) = "bat"
- Parameters:
str
- the String to pad out, may be nullsize
- the size to pad to- Returns:
- right padded String or original String if no padding is necessary,
null
if null String input
-
rightPad
Right pad a String with a specified character.
The String is padded to the size of
size
.StringUtils.rightPad(null, *, *) = null StringUtils.rightPad("", 3, 'z') = "zzz" StringUtils.rightPad("bat", 3, 'z') = "bat" StringUtils.rightPad("bat", 5, 'z') = "batzz" StringUtils.rightPad("bat", 1, 'z') = "bat" StringUtils.rightPad("bat", -1, 'z') = "bat"
- Parameters:
str
- the String to pad out, may be nullsize
- the size to pad topadChar
- the character to pad with- Returns:
- right padded String or original String if no padding is necessary,
null
if null String input - Since:
- 2.0
-
rightPad
Right pad a String with a specified String.
The String is padded to the size of
size
.StringUtils.rightPad(null, *, *) = null StringUtils.rightPad("", 3, "z") = "zzz" StringUtils.rightPad("bat", 3, "yz") = "bat" StringUtils.rightPad("bat", 5, "yz") = "batyz" StringUtils.rightPad("bat", 8, "yz") = "batyzyzy" StringUtils.rightPad("bat", 1, "yz") = "bat" StringUtils.rightPad("bat", -1, "yz") = "bat" StringUtils.rightPad("bat", 5, null) = "bat " StringUtils.rightPad("bat", 5, "") = "bat "
- Parameters:
str
- the String to pad out, may be nullsize
- the size to pad topadStr
- the String to pad with, null or empty treated as single space- Returns:
- right padded String or original String if no padding is necessary,
null
if null String input
-
leftPad
Left pad a String with spaces (' ').
The String is padded to the size of
size
.
StringUtils.leftPad(null, *) = null StringUtils.leftPad("", 3) = " " StringUtils.leftPad("bat", 3) = "bat" StringUtils.leftPad("bat", 5) = " bat" StringUtils.leftPad("bat", 1) = "bat" StringUtils.leftPad("bat", -1) = "bat"
- Parameters:
str
- the String to pad out, may be nullsize
- the size to pad to- Returns:
- left padded String or original String if no padding is necessary,
null
if null String input
-
leftPad
Left pad a String with a specified character.
Pad to a size of
size
.StringUtils.leftPad(null, *, *) = null StringUtils.leftPad("", 3, 'z') = "zzz" StringUtils.leftPad("bat", 3, 'z') = "bat" StringUtils.leftPad("bat", 5, 'z') = "zzbat" StringUtils.leftPad("bat", 1, 'z') = "bat" StringUtils.leftPad("bat", -1, 'z') = "bat"
- Parameters:
str
- the String to pad out, may be nullsize
- the size to pad topadChar
- the character to pad with- Returns:
- left padded String or original String if no padding is necessary,
null
if null String input - Since:
- 2.0
-
leftPad
Left pad a String with a specified String.
Pad to a size of
size
.StringUtils.leftPad(null, *, *) = null StringUtils.leftPad("", 3, "z") = "zzz" StringUtils.leftPad("bat", 3, "yz") = "bat" StringUtils.leftPad("bat", 5, "yz") = "yzbat" StringUtils.leftPad("bat", 8, "yz") = "yzyzybat" StringUtils.leftPad("bat", 1, "yz") = "bat" StringUtils.leftPad("bat", -1, "yz") = "bat" StringUtils.leftPad("bat", 5, null) = " bat" StringUtils.leftPad("bat", 5, "") = " bat"
- Parameters:
str
- the String to pad out, may be nullsize
- the size to pad topadStr
- the String to pad with, null or empty treated as single space- Returns:
- left padded String or original String if no padding is necessary,
null
if null String input
-
convertToRuntimeException
convert an exception to a runtime exception- Parameters:
e
-
-
substringBefore
Gets the substring before the first occurrence of a separator. The separator is not returned.
A
null
string input will returnnull
. An empty ("") string input will return the empty string. Anull
separator will return the input string.StringUtils.substringBefore(null, *) = null StringUtils.substringBefore("", *) = "" StringUtils.substringBefore("abc", "a") = "" StringUtils.substringBefore("abcba", "b") = "a" StringUtils.substringBefore("abc", "c") = "ab" StringUtils.substringBefore("abc", "d") = "abc" StringUtils.substringBefore("abc", "") = "" StringUtils.substringBefore("abc", null) = "abc"
- Parameters:
str
- the String to get a substring from, may be nullseparator
- the String to search for, may be null- Returns:
- the substring before the first occurrence of the separator,
null
if null String input - Since:
- 2.0
-
substringAfter
Gets the substring after the first occurrence of a separator. The separator is not returned.
A
null
string input will returnnull
. An empty ("") string input will return the empty string. Anull
separator will return the empty string if the input string is notnull
.StringUtils.substringAfter(null, *) = null StringUtils.substringAfter("", *) = "" StringUtils.substringAfter(*, null) = "" StringUtils.substringAfter("abc", "a") = "bc" StringUtils.substringAfter("abcba", "b") = "cba" StringUtils.substringAfter("abc", "c") = "" StringUtils.substringAfter("abc", "d") = "" StringUtils.substringAfter("abc", "") = "abc"
- Parameters:
str
- the String to get a substring from, may be nullseparator
- the String to search for, may be null- Returns:
- the substring after the first occurrence of the separator,
null
if null String input - Since:
- 2.0
-
substringBeforeLast
Gets the substring before the last occurrence of a separator. The separator is not returned.
A
null
string input will returnnull
. An empty ("") string input will return the empty string. An empty ornull
separator will return the input string.StringUtils.substringBeforeLast(null, *) = null StringUtils.substringBeforeLast("", *) = "" StringUtils.substringBeforeLast("abcba", "b") = "abc" StringUtils.substringBeforeLast("abc", "c") = "ab" StringUtils.substringBeforeLast("a", "a") = "" StringUtils.substringBeforeLast("a", "z") = "a" StringUtils.substringBeforeLast("a", null) = "a" StringUtils.substringBeforeLast("a", "") = "a"
- Parameters:
str
- the String to get a substring from, may be nullseparator
- the String to search for, may be null- Returns:
- the substring before the last occurrence of the separator,
null
if null String input - Since:
- 2.0
-
substringAfterLast
Gets the substring after the last occurrence of a separator. The separator is not returned.
A
null
string input will returnnull
. An empty ("") string input will return the empty string. An empty ornull
separator will return the empty string if the input string is notnull
.StringUtils.substringAfterLast(null, *) = null StringUtils.substringAfterLast("", *) = "" StringUtils.substringAfterLast(*, "") = "" StringUtils.substringAfterLast(*, null) = "" StringUtils.substringAfterLast("abc", "a") = "bc" StringUtils.substringAfterLast("abcba", "b") = "a" StringUtils.substringAfterLast("abc", "c") = "" StringUtils.substringAfterLast("a", "a") = "" StringUtils.substringAfterLast("a", "z") = ""
- Parameters:
str
- the String to get a substring from, may be nullseparator
- the String to search for, may be null- Returns:
- the substring after the last occurrence of the separator,
null
if null String input - Since:
- 2.0
-
argMapInteger
public static Integer argMapInteger(Map<String, String> argMap, Map<String, String> argMapNotUsed, String key, boolean required, Integer defaultValue) get the value from the argMap, throw exception if not there and required- Parameters:
argMap
-argMapNotUsed
-key
-required
-defaultValue
-- Returns:
- the value or null or exception
-
toSqlDate
null safe convert from util date to sql date- Parameters:
date
-- Returns:
- the sql date
-
indexOf
Find the index of the given object in the array.
This method returns
-1
ifnull
array input.- Parameters:
array
- the array to search through for the object, may benull
objectToFind
- the object to find, may benull
- Returns:
- the index of the object within the array,
-1
if not found ornull
array input
-
contains
Checks if the object is in the given array.
The method returns
false
if anull
array is passed in.- Parameters:
array
- the array to search throughobjectToFind
- the object to find- Returns:
true
if the array contains the object
-
indexOf
Find the index of the given object in the array starting at the given index.
This method returns
-1
ifnull
array input.A negative startIndex is treated as zero. A startIndex larger than the array length will return
-1
.- Parameters:
array
- the array to search through for the object, may benull
objectToFind
- the object to find, may benull
startIndex
- the index to start searching at- Returns:
- the index of the object within the array starting at the index,
-1
if not found ornull
array input
-
dateToString
convert a date to a string using the standard web service pattern yyyy/MM/dd HH:mm:ss.SSS Note that HH is 0-23- Parameters:
date
-- Returns:
- the string, or null if the date is null
-
stringToDate
convert a string to a date using the standard web service pattern Note that HH is 0-23- Parameters:
dateString
-- Returns:
- the string, or null if the date was null
-
stringToDate2
take as input: yyyy/mm/dd yyyy-mm-dd dd-mon-yyyy yyyy/mm/dd hh:mm:ss dd-mon-yyyy hh:mm:ss yyyy/mm/dd hh:mm:ss.SSS dd-mon-yyyy hh:mm:ss.SSS- Parameters:
input
-- Returns:
- the date
-
monthInt
convert a month string to an int (1 indexed). e.g. if input is feb or Feb or february or February return 2- Parameters:
mon
-- Returns:
- the month
-
propertiesThreadLocalOverrideMap
override map for properties in thread local to be used in a web server or the like, based on property file name- Parameters:
propertiesFileName
-- Returns:
- the override map
-
execCommand
This will execute a command, and split spaces for args (might not be what you want if you are using quotes)- Parameters:
command
-
-
execCommand
This will execute a command (with args). In this method, if the exit code of the command is not zero, an exception will be thrown. Example call: execCommand(new String[]{"/bin/bash", "-c", "cd /someFolder; runSomeScript.sh"}, true);
- Parameters:
arguments
- are the commands- Returns:
- the output text of the command.
-
retrieveExecutorService
- Returns:
- executor service
-
execCommand
public static GrouperClientCommonUtils.CommandResult execCommand(String[] arguments, boolean exceptionOnExitValueNeZero) This will execute a command (with args). Under normal operation, if the exit code of the command is not zero, an exception will be thrown. If the parameter exceptionOnExitValueNeZero is set to true, the results of the call will be returned regardless of the exit status. Example call: execCommand(new String[]{"/bin/bash", "-c", "cd /someFolder; runSomeScript.sh"}, true);
- Parameters:
arguments
- are the commandsexceptionOnExitValueNeZero
- if this is set to false, the results of the call will be returned regardless of the exit status- Returns:
- the output text of the command, and the error and return code if exceptionOnExitValueNeZero is false.
-
serializeObjectToFile
serialize an object to a file (create parent dir if necessary)- Parameters:
object
-file
-
-
unserializeObjectFromFile
public static Serializable unserializeObjectFromFile(File file, boolean nullIfException, boolean deleteFileOnException) unserialize an object from a file if it exists- Parameters:
file
-nullIfException
- true if null should be returned instead of exceptiondeleteFileOnException
- true if file should be deleted on exception- Returns:
- the object or null
-
deleteCreateFile
delete and create a new file. If its a directory, delete, and create a new dir.- Parameters:
file
- is the file to delete and create
-
deleteFile
Delete a file, throw exception if cannot- Parameters:
file
-
-
copy
copy a file to a new file- Parameters:
fromFile
-toFile
-
-
renameTo
rename a file to another file and throw runtime exception if not ok- Parameters:
fromFile
-toFile
-
-
deleteRecursiveDirectory
clear out all files recursively in a directory, including the directory itself- Parameters:
dirName
-- Throws:
RuntimeException
- when something goes wrong
-
absolutePath
absolute path null safe- Parameters:
file
-- Returns:
- absolute path null safe
-
fileOrClasspathInputstream
file or classpath location- Parameters:
typeAndLocation
-- Returns:
- the inputstream
-
toString
Get the contents of aReader
as a String.This method buffers the input internally, so there is no need to use a
BufferedReader
.- Parameters:
input
- theReader
to read from- Returns:
- the requested String
- Throws:
NullPointerException
- if the input is nullIOException
- if an I/O error occurs
-
convertUrlToDriverClassIfNeeded
if there is no driver class specified, then try to derive it from the URL- Parameters:
connectionUrl
-driverClassName
-- Returns:
- the driver class
-
isMysql
see if the config file seems to be mysql- Parameters:
connectionUrl
-- Returns:
- see if mysql
-
isOracle
see if the config file seems to be oracle- Parameters:
connectionUrl
-- Returns:
- see if oracle
-
isPostgres
see if the config file seems to be postgres- Parameters:
connectionUrl
-- Returns:
- see if postgres
-
isSQLServer
see if the config file seems to be sql server- Parameters:
connectionUrl
-- Returns:
- see if sql server
-
grouperWsVersionConvert
- Parameters:
jarVersion
-- Returns:
- v2_5_001 if version is 2.5.1
-
grouperClientVersion
get the version from jar e.g. 2.5.12- Returns:
- the version
-
jarVersion
get the version from the manifest of a jar- Parameters:
sampleClass
-- Returns:
- the version
- Throws:
Exception
-
jarFile
get a jar file from a sample class- Parameters:
sampleClass
-printError
- if error should be printed when there is a problem- Returns:
- the jar file
-
manifestProperty
get the version from the manifest of a jar- Parameters:
sampleClass
-propertyNames
- that we are looking for (usually just one)- Returns:
- the version
- Throws:
Exception
-
isWindows
public static boolean isWindows()see if we are running on windows- Returns:
- true if windows
-