public class GrouperUtil extends Object
Modifier and Type | Class and Description |
---|---|
static interface |
GrouperUtil.FieldValuable
has fieldValue method
|
Modifier and Type | Field and Description |
---|---|
static String |
DATE_FORMAT
string format of dates
|
static String |
DATE_FORMAT2
string format of dates
|
static String |
DATE_MINUTES_SECONDS_FORMAT
format including minutes and seconds: yyyy/MM/dd HH:mm:ss
|
static String |
DATE_MINUTES_SECONDS_NO_SLASH_FORMAT
format including minutes and seconds: yyyyMMdd HH:mm:ss
|
static int |
DEFAULT_BUFFER_SIZE
The name says it all.
|
static String |
EMPTY
The empty String
"" . |
static Object[] |
EMPTY_OBJECT_ARRAY
An empty immutable
Object array. |
static String[] |
EMPTY_STRING_ARRAY
An empty immutable
String array. |
static String[] |
HTML_REPLACE
array for converting HTML to string
|
static String[] |
HTML_REPLACE_NO_SINGLE
array for converting HTML to string
|
static String[] |
HTML_SEARCH_NO_SINGLE
array for converting HTML to string
|
static int |
INDEX_NOT_FOUND
Represents a failed index search.
|
static String |
JAVA_IO_TMPDIR |
static String |
LOG_ERROR |
static int |
NOT_FOUND
special number when a number is not found
|
static long |
ONE_GB
The number of bytes in a gigabyte.
|
static long |
ONE_KB
The number of bytes in a kilobyte.
|
static long |
ONE_MB
The number of bytes in a megabyte.
|
static String |
PROMPT_KEY_RESET_DATA
prompt key for reset data
|
static String |
PROMPT_KEY_SCHEMA_EXPORT_ALL_TABLES
prompt key for schema export
|
static boolean |
stopPromptingUser
dont prompt while testing etc, but make sure there has been at least one prompt
|
static Map<Class<?>,Set<String>> |
stringFieldNames
map of class to the list of fields which are string type
|
static String |
TIMESTAMP_FILE_FORMAT
string format of dates for file names
|
static String |
TIMESTAMP_FORMAT
format on screen of config for milestone: yyyy/MM/dd HH:mm:ss.SSS
|
static String |
TIMESTAMP_NO_SLASH_FORMAT
format on screen of config for milestone: yyyyMMdd HH:mm:ss.SSS
|
static DateFormat |
timestampIsoUtcSeconds |
Constructor and Description |
---|
GrouperUtil() |
Modifier and Type | Method and Description |
---|---|
static 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 <T> void |
addIfNotThere(Collection<T> list,
Collection<T> listToAdd)
add each element of listToAdd if it is not already in list
|
static void |
append(StringBuilder result,
String separatorIfResultNotEmpty,
String stringToAppend)
append and maybe put a separator in there
|
static boolean |
appendIfNotBlank(StringBuilder result,
Object theStringOrArrayOrList)
if theString is not blank, apppend it to the result, and if appending,
|
static boolean |
appendIfNotBlank(StringBuilder result,
String prefix,
Object theStringOrArrayOrList)
if theString is not Blank, apppend it to the result, and if appending,
add a prefix (if not null)
|
static boolean |
appendIfNotBlank(StringBuilder result,
String prefix,
Object theStringOrArrayOrList,
String suffix)
if theString is not Blank, apppend it to the result, and if appending,
add a prefix and suffix (if not null)
|
static boolean |
appendIfNotBlank(StringBuilder result,
String prefix,
String prefixIfNotBlank,
Object theStringOrArrayOrList,
String suffix)
if theString is not Blank, apppend it to the result, and if appending,
add a prefix and suffix (if not null)
|
static String |
appendIfNotBlankString(String string,
String separator,
String suffix)
append a string to another string if both not blank, with separator.
|
static boolean |
appendIfNotEmpty(StringBuilder result,
Object theStringOrArrayOrList)
if theString is not empty, apppend it to the result, and if appending,
|
static boolean |
appendIfNotEmpty(StringBuilder result,
String prefix,
Object theStringOrArrayOrList)
if theString is not empty, apppend it to the result, and if appending,
add a prefix (if not null)
|
static boolean |
appendIfNotEmpty(StringBuilder result,
String prefix,
Object theStringOrArrayOrList,
String suffix)
if theString is not empty, apppend it to the result, and if appending,
add a prefix and suffix (if not null)
|
static boolean |
appendIfNotEmpty(StringBuilder result,
String prefix,
String prefixIfNotEmpty,
Object theStringOrArrayOrList,
String suffix)
if theString is not empty, apppend it to the result, and if appending,
add a prefix and suffix (if not null)
|
static String |
appendPrefixIfStringNotBlank(String prefix,
String separator,
String string)
append a prefix to another string if both not blank.
|
static String |
argAfter(String[] args,
String argBefore)
return the arg after the argBefore, or null if not there, or exception
if argBefore is not found
|
static <T> T |
arrayPopOne(T[] array)
Return the zero element of the array, if it exists, null if the array is empty.
|
static void |
assertion(boolean isTrue,
String reason)
If false, throw an assertException, and give a reason
|
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
|
static void |
assignField(Class theClass,
Object invokeOn,
String fieldName,
Object dataToAssign,
Class<? extends Annotation> annotationWithValueOverride)
assign data to a field.
|
static void |
assignField(Field field,
Object invokeOn,
Object dataToAssign,
boolean overrideSecurity,
boolean typeCast)
assign data to a field
|
static void |
assignField(Field field,
Object invokeOn,
Object dataToAssign,
boolean overrideSecurity,
boolean typeCast,
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 |
assignSetter(Object invokeOn,
String fieldName,
Object dataToAssign,
boolean typeCast)
assign data to a setter.
|
static <T> List<T> |
batchList(List<T> collection,
int batchSize,
int batchIndex)
retrieve a batch by 0 index.
|
static int |
batchNumberOfBatches(Collection<?> collection,
int batchSize)
If batching this is the number of batches
|
static int |
batchNumberOfBatches(int count,
int batchSize)
If batching this is the number of batches
|
static BigDecimal |
bigDecimalObjectValue(Object input)
Convert an object to a byte, allow nulls
|
static Boolean |
booleanObjectValue(Object object)
get the Boolean value for an object
|
static boolean |
booleanValue(Object object)
get the boolean value for an object, cant be null or blank
|
static boolean |
booleanValue(Object object,
boolean defaultBoolean)
get the boolean value for an object
|
static 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 nulls
|
static byte |
byteValue(Object input)
convert an object to a byte
|
static 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 method
|
static Object |
callMethod(Class theClass,
Object invokeOn,
String methodName,
Object paramTypesOrArrayOrList,
Object paramsOrListOrArray,
boolean callOnSupers,
boolean overrideSecurity)
helper method for calling a method
|
static 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 params
|
static Object |
callMethod(Class theClass,
String methodName,
Object paramTypesOrArrayOrList,
Object paramsOrListOrArray)
helper method for calling a static method up the stack
|
static Object |
callMethod(Object invokeOn,
String methodName)
helper method for calling a method with no params (could be in
superclass), will override security
|
static Object |
callMethodWithMoreParams(Object instance,
Class<?> theType,
String methodName,
Object[] params)
call method with more params.
|
static String |
capitalize(String str)
Capitalizes a String changing the first letter to title case as
per
Character.toTitleCase(char) . |
static Object |
changeToVersion(Object input,
String newPackage)
convert an object from one version to another
|
static Object |
changeToVersionHelper(Object input,
String newPackage,
int timeToLive)
convert an object from one version to another
|
static Character |
charObjectValue(Object input)
get the Character wrapper value for the input
|
static char |
charValue(Object input)
convert an object to a char
|
static String |
classesString(Object object)
print the simple names of a list of classes
|
static ClassLoader |
classLoader()
fast class loader
|
static String |
className(Object object)
null safe classname method, gets the unenhanced name
|
static String |
classNameCollection(Object object)
null safe classname method, max out at 20
|
static <T> T |
clone(T object,
Set<String> fieldsToClone)
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(Closeable closeable)
close a writer quietly
|
static void |
closeQuietly(Connection connection)
close a connection null safe and dont throw exception
|
static void |
closeQuietly(InputStream input)
Unconditionally close an
InputStream . |
static void |
closeQuietly(OutputStream output)
Unconditionally close an
OutputStream . |
static void |
closeQuietly(Reader input)
Unconditionally close an
Reader . |
static void |
closeQuietly(ResultSet resultSet)
close a resultSet null safe and dont throw exception
|
static void |
closeQuietly(org.hibernate.Session session)
close a session null safe and dont throw exception
|
static void |
closeQuietly(Statement statement)
close a statement null safe and dont throw exception
|
static void |
closeQuietly(Writer writer)
close a writer quietly
|
static void |
closeQuietly(XMLStreamWriter writer)
close a writer quietly
|
static <T> T |
collectionPopOne(Collection<T> collection,
boolean exceptionIfMoreThanOne)
Return the zero element of the list, if it exists, null if the list is empty.
|
static String |
collectionToString(Collection collection)
convert a set to a string (comma separate)
|
static int |
compare(Comparable first,
Comparable second)
compare null safe
|
static Set<String> |
compareObjectFields(Object first,
Object second,
Set<String> fieldsToCompare,
String mapPrefix)
compare two objects, compare primitives, Strings, maps of string attributes.
|
static URL |
computeUrl(String resourceName,
boolean canBeNull)
compute a url of a resource
|
static String |
concat(String a,
String b)
concat two strings
|
static String |
concat(String a,
String b,
String c)
concat strings
|
static String |
concat(String a,
String b,
String c,
String d)
concat strings
|
static String |
concat(String a,
String b,
String c,
String d,
String e)
concat strings
|
static <T> T |
construct(Class<T> theClass,
Class[] types,
Object[] args)
construct an instance by reflection
|
static boolean |
contains(Object[] array,
Object objectToFind)
Checks if the object is in the given array.
|
static boolean |
contains(String str,
char searchChar)
Checks if String contains a search character, handling
null . |
static boolean |
contains(String str,
String searchStr)
Checks if String contains a search String, handling
null . |
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 String |
convertMillisToFriendlyString(Integer duration)
convert millis to friendly string
|
static String |
convertMillisToFriendlyString(Long duration)
convert millis to friendly string
|
static Set<Source> |
convertSources(String sources)
e.g.
|
static Set<Source> |
convertSources(String[] sourceIds)
e.g.
|
static String |
convertSourcesToSqlInString(Set<Source> sources)
Deprecated.
moved to @See HibUtils
|
static void |
copy(InputStream input,
Writer output)
Copy bytes from an
InputStream to chars on a
Writer using the default character encoding of the platform. |
static void |
copy(InputStream input,
Writer output,
String encoding)
Copy and convert bytes from an
InputStream to chars on a
Writer , using the specified encoding. |
static int |
copy(Reader input,
Writer output)
Copy chars from a
Reader to a Writer . |
static void |
createParentDirectories(File file)
Create the parent directories for a file if they do not already exist
|
static Long |
dateLongValue(String date)
convert a string date into a long date (e.g.
|
static String |
dateStringValue(Date date)
date object to a string:
|
static String |
dateStringValue(Long theDate)
date object to a string:
|
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-23
|
static Date |
dateValue(Object inputObject)
Convert an object to a java.util.Date.
|
static String |
dbVersionDescribeDifferences(Object theOld,
Object theNew,
Set<String> differentFieldNames)
put in english how an object changed
|
static String |
defaultIfBlank(String string,
String defaultStringIfBlank)
return the string or the other if the first is blank
|
static String |
defaultIfEmpty(String str,
String defaultStr)
Returns either the passed in String, or if the String is
empty or
null , the value of defaultStr . |
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 is
null , an empty String (""). |
static String |
defaultString(String str,
String defaultStr)
Returns either the passed in String, or if the String is
null , the value of defaultStr . |
static void |
deleteFile(File file)
Delete a file, throw exception if cannot
|
static Double |
doubleObjectValue(Object input,
boolean allowNullBlank)
get the Double value of an object
|
static double |
doubleValue(Object input)
get the double value of an object
|
static double |
doubleValueNoError(Object input)
get the double value of an object, do not throw an
exception if there is an
error
|
static String |
encryptSha(String plaintext)
encrypt a message to SHA
|
static <E extends Enum<?>> |
enumValueOfIgnoreCase(Class<E> theEnumClass,
String string,
boolean exceptionOnNotFound)
do a case-insensitive matching
|
static <E extends Enum<?>> |
enumValueOfIgnoreCase(Class<E> theEnumClass,
String string,
boolean exceptionOnNotFound,
boolean exceptionIfInvalid)
do a case-insensitive matching
|
static boolean |
equals(Object object1,
Object object2)
Compares two objects for equality, where either one or both
objects may be
null . |
static boolean |
equals(String first,
String second)
null safe string compare
|
static boolean |
equalsIgnoreCase(String str1,
String str2)
equalsignorecase
|
static boolean |
equalsList(List<?> list1,
List<?> list2)
see if two lists are deep equals using the equals() method on each item
|
static boolean |
equalsSet(Set<?> set1,
Set<?> set2)
see if two sets are deep equals using the equals() method on each item
|
static String |
escapeDoubleQuotes(String string)
escape double quotes in javascript
|
static String |
escapeDoubleQuotesForString(String string)
escape double quotes in javascript
|
static String |
escapeDoubleQuotesSlashesAndNewlinesForString(String string)
escape double quotes in javascript
|
static String |
escapeHtml(String input,
boolean isEscape)
Convert an XML string to HTML to display on the screen
|
static String |
escapeHtml(String input,
boolean isEscape,
boolean escapeSingleQuotes)
Convert an XML string to HTML to display on the screen
|
static String |
escapeNewlinesForString(String string)
escape double quotes in javascript
|
static String |
escapeSingleQuotes(String string)
escape single quotes in javascript
|
static String |
escapeSlashesForString(String string)
escape slashes
|
static String |
escapeUrlDecode(String string)
unescape url chars (e.g.
|
static String |
escapeUrlEncode(String string)
escape url chars (e.g.
|
static void |
exceptionFinallyInjectOrThrow(Exception tryException,
Exception finallyException)
in a finally block, take an exception and inject and throw the existing exception, or just throw the finally exception
|
static <T> GrouperFuture<T> |
executorServiceSubmit(ExecutorService executorService,
Callable<T> callable)
you should probably use the GrouperCallable method, not this one
|
static GrouperFuture |
executorServiceSubmit(ExecutorService executorService,
GrouperCallable callable,
boolean willRetry) |
static String |
extensionFromName(String name)
get the extension from name.
|
static Field |
field(Class theClass,
String fieldName,
boolean callOnSupers,
boolean throwExceptionIfNotFound)
get a field object for a class, potentially in superclasses
|
static Set<String> |
fieldNames(Class theClass,
Class fieldType,
boolean includeStaticFields)
return a set of Strings for a class and type.
|
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)
|
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).
|
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).
|
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).
|
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)
|
static Object |
fieldValue(Class theClass,
Object invokeOn,
String fieldName,
boolean callOnSupers,
boolean overrideSecurity,
boolean considerFieldValuable)
find out a field value
|
static Object |
fieldValue(Field field,
Object invokeOn)
get the value of a field, override security if needbe
|
static Object |
fieldValue(Field field,
Object invokeOn,
boolean overrideSecurity)
get the value of a field
|
static Object |
fieldValue(Object invokeOn,
String fieldName)
find out a field value (invoke on supers, override security)
|
static String |
fileCanonicalPath(File file)
get canonical path of file
|
static void |
fileCopy(File src,
File dest) |
static void |
fileCopyExampleResourceIfNotExist(String exampleResource,
String resource) |
static boolean |
fileCreateNewFile(File file)
create a new file
|
static Set<String> |
fileDescendantDirsRelativePaths(File parentDir)
get the relative paths of descendant files
|
static Set<String> |
fileDescendantRelativePaths(File parentDir)
get the relative paths of descendant files
|
static File |
fileFromResourceName(String resourceName)
get a file name from a resource name
|
static List<File> |
fileListRecursive(File parent)
list files recursively from parent, dont include
|
static List<File> |
fileListRecursiveDirs(File parent)
list dirs recursively from parent, dont include
|
static boolean |
findGrouperPropertiesDbMatch(boolean whitelist,
String user,
String url)
see if there is a grouper properties db match
|
static Set<String> |
findParentStemNames(Collection<Group> groups)
if the groups are: a:b:c:d and a:d:r, then return the strings:
:, a, a:b, a:b:c, a:d
|
static Set<String> |
findParentStemNames(String objectName)
if the groups are: a:b:c:d, then return the strings:
:, a, a:b, a:b:c
|
static String |
fixRelativePath(String inPath) |
static Float |
floatObjectValue(Object input,
boolean allowNullBlank)
get the Float value of an object
|
static float |
floatValue(Object input)
get the float value of an object
|
static float |
floatValueNoError(Object input)
get the float value of an object, do not throw an exception if there is an
error
|
static String |
formatNumberWithCommas(Long number) |
static Class |
forName(String origClassName)
Returns the class object.
|
static Object |
get(Object arrayOrCollection,
int index)
Get a specific index of an array or collection (note for collections and
iterating, it is more efficient to get an iterator and iterate
|
static Throwable |
getCause(Throwable throwable)
Introspects the
Throwable to obtain the cause. |
static Throwable |
getCause(Throwable throwable,
String[] methodNames)
Introspects the
Throwable to obtain the cause. |
static Stem |
getFirstParentStemOfName(String name)
Returns the first existing parent stem of a given name.
|
static String |
getFullStackTrace(Throwable throwable)
A way to get the entire nested stack-trace of an throwable.
|
static String |
getGrouperHome() |
static String |
getLocationFromResourceName(String resourceName)
get a full path from a resource name
|
static org.apache.commons.logging.Log |
getLog(Class<?> theClass)
get a logger, and auto-create log dirs if havent done yet
|
static Long |
getMaxLongValue(Long... values) |
static Long |
getMinLongValue(Long... values) |
static Method |
getter(Class theClass,
String fieldName,
boolean callOnSupers,
boolean throwExceptionIfNotFound)
get a getter method object for a class, potentially in superclasses
|
static Method |
getterHelper(Class theClass,
String fieldName,
String getterName,
boolean callOnSupers,
boolean throwExceptionIfNotFound)
get a setter method object for a class, potentially in superclasses
|
static String |
getterNameFromPropertyName(Class theClass,
String propertyName)
generate getBb from bb
|
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).
|
static Throwable[] |
getThrowables(Throwable throwable)
Returns the list of
Throwable objects in the
exception chain. |
static void |
gshReturn()
get out of gsh with normal return code
|
static void |
gshReturn(int returnCode)
get out of GSH with return code
|
static String |
gshRunScript(String script)
run a GSH script
|
static String |
gshRunScript(String script,
boolean lightWeight)
run a GSH script
|
static boolean |
hasOption(int options,
int option)
see if options have a specific option by int bits
|
static String |
hostname()
get the hostname of this machine
|
static 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 |
indent(String string,
boolean failIfTypeNotFound)
this method will indent xml or json.
|
static int |
indexOf(Object[] array,
Object objectToFind)
Find the index of the given object in the array.
|
static int |
indexOf(Object[] array,
Object objectToFind,
int startIndex)
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 false
|
static Integer |
intObjectValue(Object input,
boolean allowNullBlank)
get the Integer value of an object
|
static int |
intValue(Object input)
convert an object to a int
|
static int |
intValue(Object input,
int valueIfNull)
convert an object to a int
|
static int |
intValueNoError(Object input)
get the int value of an object, do not throw an exception if there is an
error
|
static Object |
invokeMethod(Method method,
Object invokeOn)
Safely invoke a reflection method that takes no args
|
static Object |
invokeMethod(Method method,
Object invokeOn,
Object paramsOrListOrArray)
Safely invoke a reflection method
|
static int |
ipInt(String ip)
get the ip addres integer from a string ip address
|
static boolean |
ipOnNetwork(String ipString,
String networkIpString,
int mask)
see if an ip address is on a network
|
static boolean |
ipOnNetworks(String ipString,
String networkIpStrings)
see if an ip address is on a network
|
static int |
ipReadyForAnd(int ip,
int maskLength)
get the ip address after putting 1's where the subnet mask is not
|
static boolean |
isArrayOrCollection(Object arrayOrCollection)
is array or collection
|
static boolean |
isAscii(char input)
is ascii char
|
static boolean |
isBlank(Object input)
See if the input is null or if string, if it is empty or blank (whitespace)
|
static boolean |
isBlank(String str)
Checks if a String is whitespace, empty ("") or null.
|
static boolean |
isEmpty(String str)
Checks if a String is empty ("") or null.
|
static boolean |
isGetter(Method method)
if the method name starts with get, and takes no args, and returns something,
then getter
|
static boolean |
isInRetriableCode() |
static boolean |
isNestedThrowable(Throwable throwable)
Checks whether this
Throwable class can store a cause. |
static boolean |
isNotBlank(String str) |
static boolean |
isPrintGrouperLogsToConsole()
if the grouper logs go to the console or not
|
static boolean |
isScalar(Class<?> type)
see if a class is a scalar (not bean, not array or list, etc)
|
static boolean |
isSetter(Method method)
if the method name starts with get, and takes no args, and returns something,
then getter
|
static boolean |
isThrowableNested()
Checks if the Throwable class has a
getCause method. |
static boolean |
isWindows()
see if we are running on windows
|
static Iterator |
iterator(Object collection)
null safe iterator getter if the type if collection
|
static File |
jarFile(Class sampleClass,
boolean printError)
get a jar file from a sample class
|
static String |
join(Iterator iterator,
char separator)
Joins the elements of the provided
Iterator into
a single String containing the provided elements. |
static String |
join(Iterator iterator,
String separator)
Joins the elements of the provided
Iterator into
a single String containing the provided elements. |
static String |
join(Object[] array)
Joins the elements of the provided array into a single String
containing the provided list of elements.
|
static String |
join(Object[] array,
char separator)
Joins the elements of the provided array into a single String
containing the provided list of elements.
|
static String |
join(Object[] array,
String separator)
Joins the elements of the provided array into a single String
containing the provided list of elements.
|
static Object |
jsonConvertFrom(Map<String,Class<?>> conversionMap,
String json)
convert an object from json.
|
static <T> T |
jsonConvertFrom(String json,
Class<T> theClass)
convert an object from json.
|
static String |
jsonConvertTo(Object object)
convert an object to json.
|
static String |
jsonConvertTo(Object object,
boolean includeObjectNameWrapper)
convert an object to json.
|
static void |
jsonConvertTo(Object object,
Writer writer)
convert an object to json.
|
static String |
jsonConvertToNoWrap(Object object)
convert an object to json without wrapping it with the simple class name.
|
static com.fasterxml.jackson.databind.node.ArrayNode |
jsonJacksonArrayNode() |
static void |
jsonJacksonAssignBoolean(com.fasterxml.jackson.databind.node.ObjectNode objectNode,
String fieldName,
Boolean value)
assign a jackson field
|
static void |
jsonJacksonAssignLong(com.fasterxml.jackson.databind.node.ObjectNode objectNode,
String fieldName,
Long value)
assign a jackson field
|
static void |
jsonJacksonAssignString(com.fasterxml.jackson.databind.node.ObjectNode objectNode,
String fieldName,
String value)
assign a jackson field
|
static void |
jsonJacksonAssignStringArray(com.fasterxml.jackson.databind.node.ObjectNode objectNode,
String fieldName,
Collection<String> values)
assign a jackson field
|
static Boolean |
jsonJacksonGetBoolean(com.fasterxml.jackson.databind.JsonNode jsonNode,
String fieldName)
get a field as boolean and handle null
|
static Boolean |
jsonJacksonGetBoolean(com.fasterxml.jackson.databind.JsonNode jsonNode,
String fieldName,
Boolean defaultBoolean)
get a field as boolean and handle null
|
static Integer |
jsonJacksonGetInteger(com.fasterxml.jackson.databind.JsonNode jsonNode,
String fieldName)
get a field as integer and handle null
|
static Integer |
jsonJacksonGetInteger(com.fasterxml.jackson.databind.JsonNode jsonNode,
String fieldName,
Integer defaultInteger)
get a field as integer and handle null
|
static Long |
jsonJacksonGetLong(com.fasterxml.jackson.databind.JsonNode jsonNode,
String fieldName)
get a field as long and handle null
|
static Long |
jsonJacksonGetLong(com.fasterxml.jackson.databind.JsonNode jsonNode,
String fieldName,
Long defaultLong)
get a field as long and handle null
|
static com.fasterxml.jackson.databind.JsonNode |
jsonJacksonGetNode(com.fasterxml.jackson.databind.JsonNode jsonNode,
String fieldName)
get a field as node or array.
|
static String |
jsonJacksonGetString(com.fasterxml.jackson.databind.JsonNode jsonNode,
String fieldName)
get a field as string and handle null
|
static String |
jsonJacksonGetString(com.fasterxml.jackson.databind.JsonNode jsonNode,
String fieldName,
String defaultString)
get a field as string and handle null
|
static Set<String> |
jsonJacksonGetStringSet(com.fasterxml.jackson.databind.JsonNode jsonNode,
String fieldName)
get a field as string set.
|
static com.fasterxml.jackson.databind.node.ObjectNode |
jsonJacksonNode() |
static com.fasterxml.jackson.databind.JsonNode |
jsonJacksonNode(String json) |
static String |
jsonJacksonToString(com.fasterxml.jackson.databind.JsonNode jsonNode) |
static String |
ldapBushyDn(String groupName,
String rdnAttributeName,
String ouAttributeName,
boolean performRdnEscaping,
boolean performFilterEscaping) |
static String |
ldapBushyDn(String groupName,
String rdnAttributeName,
String rdnAttributeValue,
String ouAttributeName,
boolean performRdnEscaping,
boolean performFilterEscaping) |
static String |
ldapConvertDnToSpecificValue(String dn)
convert from uid=someapp,ou=people,dc=myschool,dc=edu
to someapp
|
static String |
ldapConvertDnToSubPath(String dn,
String baseDn,
String searchDn)
convert from uid=someapp,ou=people,dc=myschool,dc=edu
baseDn is edu
searchDn is myschool
to people:someapp
i.e.
|
static String |
ldapEscapeRdn(String rdnString)
This takes a string of attribute=value and makes sure that special, dn-relevant characters
are escaped, particularly commas, pluses, etc
|
static String |
ldapEscapeRdnValue(String rdnValue)
This takes a string of value and makes sure that special, dn-relevant characters
are escaped, particularly commas, pluses, etc
|
static String |
ldapFilterEscape(String s) |
static String |
leftPad(String str,
int size)
Left pad a String with spaces (' ').
|
static String |
leftPad(String str,
int size,
char padChar)
Left pad a String with a specified character.
|
static String |
leftPad(String str,
int size,
String padStr)
Left pad a String with a specified String.
|
static int |
length(Object arrayOrCollection)
Null safe array length or map
|
static int |
lengthAscii(String input)
find the length of ascii chars (non ascii are counted as two)
|
static <T> List<T> |
listFromCollection(Collection<T> collection)
null safe convert collection to list
|
static <T> T |
listPopOne(List<T> list)
Return the zero element of the list, if it exists, null if the list is empty.
|
static <K,V> Map<K,V> |
listToMap(List<V> list,
Class<K> keyClass,
Class<V> valueClass,
String keyPropertyName)
turn a list into map
|
static String |
logDirPrint()
print the log dir to the console so the logs are easy to find
|
static void |
logDirsCreateIfNotDone()
auto-create log dirs if not done yet
|
static void |
logErrorNextException(org.apache.commons.logging.Log log,
Throwable throwable,
int timeToLive)
find a next exception in the stack and log it
|
static Long |
longObjectValue(Object input,
boolean allowNullBlank)
get the Long value of an object
|
static long |
longValue(Object input)
convert an object to a long
|
static long |
longValue(Object input,
long valueIfNull)
convert an object to a long
|
static long |
longValueNoError(Object input)
get the long value of an object, do not throw an exception if there is an
error
|
static void |
main(String[] args) |
static void |
mapAddValue(Map<String,Object> map,
String key,
int numberToAdd)
in a map get a value if there and increment or set a value
|
static void |
mapAddValue(Map<String,Object> map,
String key,
long numberToAdd)
in a map get a value if there and increment or set a value
|
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)
|
static <K,V> boolean |
mapEquals(Map<K,V> first,
Map<K,V> second)
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 boolean |
matchSqlString(String sqlMatcher,
String testText)
match sqlLike string
see if a sql like string matches a real string.
|
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
|
static Method |
methodByName(Class<?> theClass,
String methodName,
Class<?> superclassToStopAt,
boolean includeSuperclassToStopAt,
boolean includeStaticMethods,
boolean exceptionIfNotFound)
simple method to get method names
|
static Set<String> |
methodNames(Class<?> theClass,
Class<?> superclassToStopAt,
boolean includeSuperclassToStopAt,
boolean includeStaticMethods)
simple method to get method names
|
static void |
methodsByNameHelper(Class<?> theClass,
String methodName,
Class<?> superclassToStopAt,
boolean includeSuperclassToStopAt,
boolean includeStaticMethods,
Class<? extends Annotation> markerAnnotation,
boolean includeAnnotation,
Set<Method> methodSet)
get the set of methods
|
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
|
static void |
mkdirs(File dir)
Create directories, throw exception if not possible.
|
static int |
monthInt(String mon)
convert a month string to an int (1 indexed).
|
static boolean |
nameInFolderDirect(String name,
String folder)
see if a name is in a folder (not subfolder).
|
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 class
|
static Object |
next(Object arrayOrCollection,
Iterator iterator,
int index)
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> |
nonNull(List<T> list)
make sure a list is non null.
|
static <K,V> Map<K,V> |
nonNull(Map<K,V> map)
make sure it is non null, if null, then give new map
|
static <T> Set<T> |
nonNull(Set<T> set)
make sure a list is non null.
|
static <T> T[] |
nonNull(T[] array,
Class<?> theClass)
make sure a array is non null.
|
static String |
normalize(String form,
String text)
take out accented chars with
grouperUtil.normalize("NFD", groupAttribute).replaceAll("\\p{M}", "")
|
static String |
normalizeEmailAddresses(String emailAddresses)
take email addresses from a textarea and turn them into semi separated
|
static boolean |
nullOrBlank(Object object)
is an object null or blank
|
static 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 |
parentStemNameFromName(String name,
boolean nullForRoot)
get the parent stem name from name.
|
static boolean |
portAvailable(int port,
String ipAddress)
Checks to see if a specific port is available.
|
static boolean |
portAvailableWait(int port,
String ipAddress,
int seconds,
boolean expectingListening) |
static String |
prefixOrSuffix(String startString,
String separator,
boolean isPrefix)
get the prefix or suffix of a string based on a separator
|
static void |
promptUserAboutChanges(String reason,
boolean checkResponse,
String dbType,
String url,
String user)
prompt the user about db changes
|
static void |
promptUserAboutDbChanges(String reason,
boolean checkResponse)
prompt the user about db changes
|
static Properties |
propertiesFromFile(File file,
boolean useCache)
properties from file
|
static Properties |
propertiesFromResourceName(String resourceName)
read properties from a resource, dont modify the properties returned since they are cached
|
static Properties |
propertiesFromResourceName(String resourceName,
boolean useCache,
boolean exceptionIfNotExist)
read properties from a resource, dont modify the properties returned since they are cached
|
static Properties |
propertiesFromUrl(String urlString,
boolean useCache,
boolean useFailSafeCache,
GrouperHtmlFilter grouperHtmlFilter)
this will get the properties from an external url.
|
static Map<String,String> |
propertiesThreadLocalOverrideMap(String propertiesFileName)
override map for properties in thread local to be used in a web server or the like, based on property file name
|
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
|
static String |
propertiesValue(Properties properties,
Map<String,String> overrideMap,
String key)
get a value (trimmed to e) from a property file
|
static String |
propertiesValue(Properties properties,
String key)
get a value (trimmed to e) from a property file
|
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
|
static boolean |
propertiesValueBoolean(Properties properties,
Map<String,String> overrideMap,
String propertyName,
boolean defaultValue)
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 find
|
static <T> List<T> |
propertyList(Collection<?> collection,
String propertyName,
Class<T> fieldType)
take a collection of beans, and go through and get all the values
of one of the javabean properties, and make a list of those values.
|
static String |
propertyName(Method method)
If this is a getter or setter, then get the property name
|
static Class |
propertyType(Class theClass,
String propertyName)
use reflection to get a property type based on getter or setter or field
|
static Object |
propertyValue(Object object,
String property)
this assumes the property exists, and is a simple property
|
static String |
readFileIntoString(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 |
readResourceIntoString(String resourceName,
boolean allowNull) |
static Object |
remove(Object arrayOrCollection,
int index)
Remove the iterator or index
|
static Object |
remove(Object arrayOrCollection,
Iterator iterator,
int index)
Remove the iterator or index
|
static String |
repeat(String str,
int repeat)
Repeat a String
repeat times to form a
new String. |
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.
|
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
|
static String |
replace(String text,
Object searchFor,
Object replaceWith)
replace a string or strings from a string, and put the output in a string
buffer.
|
static String |
replace(String text,
Object searchFor,
Object replaceWith,
boolean recurse)
replace a string or strings from a string, and put the output in a string
buffer
|
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
|
static String |
replace(String text,
String repl,
String with)
Replaces all occurrences of a String within another String.
|
static String |
replace(String text,
String repl,
String with,
int max)
Replaces a String with another String inside a larger String, for the
first
max values of the search String. |
static void |
replace(Writer outWriter,
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(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
|
static String |
replaceWhitespaceWithSpace(String input)
replace all whitespace with space
|
static <T> T |
retrieveByProperties(Collection<T> collection,
List<String> propertyNames,
List<Object> propertyValues)
find an object (or objects) in a collection based on fields
|
static <T> T |
retrieveByProperty(Collection<T> collection,
String propertyName,
Object propertyValue)
find an object (or objects) in a collection based on fields
|
static ExecutorService |
retrieveExecutorService()
might want to use GrouperCallable with this
|
static <T> List<T> |
retrieveListByProperties(Collection<T> collection,
List<String> propertyNames,
List<Object> propertyValues)
find an object (or objects) in a collection based on fields
|
static <T> List<T> |
retrieveListByProperty(Collection<T> collection,
String propertyName,
Object propertyValue)
find an object (or objects) in a collection based on fields
|
static String |
retrievePasswordFromStdin(boolean dontMask,
String prompt)
retrieve a password from stdin
|
static char[] |
retrievePasswordFromStdin(InputStream in,
String prompt) |
static PropertyDescriptor |
retrievePropertyDescriptor(Object object,
String property)
if there is a valid accessible property descriptor, get it
|
static String |
rightPad(String str,
int size)
Right pad a String with spaces (' ').
|
static String |
rightPad(String str,
int size,
char padChar)
Right pad a String with a specified character.
|
static String |
rightPad(String str,
int size,
String padStr)
Right pad a String with a specified String.
|
static void |
rollbackQuietly(Connection connection)
rollback a connection quietly
|
static void |
rollbackQuietly(org.hibernate.Transaction transaction)
rollback a transaction quietly
|
static void |
saveStringIntoFile(File file,
String contents)
save a string into a file, file does not have to exist
|
static boolean |
saveStringIntoFile(File file,
String contents,
boolean onlyIfDifferentContents,
boolean ignoreWhitespace)
save a string into a file, file does not have to exist
|
static void |
setClear(Set<?> set) |
static <T> T |
setPopOne(Set<T> set)
Return the zero element of the set, if it exists, null if the list is empty.
|
static <T> Set<T> |
setShorten(Set<T> theSet,
int maxSize)
shorten a set if it is too long
|
static Method |
setter(Class theClass,
String fieldName,
boolean callOnSupers,
boolean throwExceptionIfNotFound)
get a setter method object for a class, potentially in superclasses
|
static Method |
setterHelper(Class theClass,
String fieldName,
String setterName,
boolean callOnSupers,
boolean throwExceptionIfNotFound)
get a setter method object for a class, potentially in superclasses
|
static String |
setterNameFromPropertyName(String propertyName)
generate setBb from bb
|
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)
|
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 short
|
static void |
sleep(long millis)
sleep, if interrupted, throw runtime
|
static void |
sleepWithStdoutCountdown(int seconds) |
static <T extends GrouperId> |
sortByIds(Collection<String> ids,
Collection<T> grouperObjects)
based on some ids, sort a set of grouper objects by that
|
static String[] |
split(String str)
Splits the provided text into an array, using whitespace as the
separator.
|
static String[] |
split(String str,
char separatorChar)
Splits the provided text into an array, separator specified.
|
static String[] |
split(String str,
String separatorChars)
Splits the provided text into an array, separators specified.
|
static String[] |
split(String str,
String separatorChars,
int max)
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 List<String> |
splitFileLines(String fileContents)
split a file on whitespace
|
static String[] |
splitPreserveAllTokens(String str)
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[] |
splitTrim(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 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)
|
static String |
splitTrimEmailAddresses(String emailAddresses)
take email addresses from a textarea and turn them into semi separated
|
static List<String> |
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)
|
static Set<String> |
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 String |
stack()
get a couple of lines of stack
|
static Set<String> |
stemCalculateTopLevelStems(Set<String> stems)
if these are the stems to sync: a:b:c, a:b, a:d, a:b:d, then the top level are: a:b, a:d
|
static void |
stemRemoveAncestorStemsOfChildStem(Collection<String> stemNames)
remove stems that are ancestor of the child stem
|
static void |
stemRemoveChildStemsOfTopStem(List<Stem> stems)
remove stems that are children of the top level stem
|
static void |
stemRemoveChildStemsOfTopStemName(Collection<String> stemNames)
remove stems that are children of the top level stem
|
static Set<String> |
stringFieldNames(Class<?> theClass)
get the list of string field names based on class, and cache this
|
static int |
stringLength(String string)
string length
|
static Date |
stringToDate(String dateString)
convert a string to a date using the standard web service pattern Note
that HH is 0-23
|
static 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.SSS
|
static Timestamp |
stringToTimestamp(String input)
convert a string to timestamp based on the following formats:
yyyyMMdd
yyyy/MM/dd
yyyy/MM/dd HH:mm:ss
yyyy/MM/dd HH:mm:ss.SSS
yyyy/MM/dd HH:mm:ss.SSSSSS
|
static String |
stringValue(Date date)
convert a date to the standard string yyyymmdd
|
static String |
stringValue(Object input)
convert an object to a string
|
static String |
stripEnd(String str,
String stripChars)
Deprecated.
use stripSuffix instead
|
static String |
stripFirstSlashIfExists(String input)
strip the first slash (/ or \) from a string if it exists
|
static String |
stripLastSlashIfExists(String input)
strip the last slash (/ or \) from a string if it exists
|
static String |
stripPrefix(String string,
String prefix)
strip the prefix off
|
static String |
stripStart(String str,
String stripChars)
Strips any of a set of characters from the start of a String.
|
static String |
stripSuffix(String string,
String suffix)
strip the suffix off
|
static boolean |
subjectHasAttribute(Subject subject,
String attributeName)
see if a subject has an attribute
|
static String |
subjectToString(Subject subject)
convert a subject to string safely
|
static String |
substituteExpressionLanguage(String stringToParse,
Map<String,Object> variableMap)
substitute an EL for objects
|
static String |
substituteExpressionLanguage(String stringToParse,
Map<String,Object> variableMap,
boolean allowStaticClasses)
Deprecated.
|
static String |
substituteExpressionLanguage(String stringToParse,
Map<String,Object> variableMap,
boolean allowStaticClasses,
boolean silent)
substitute an EL for objects
|
static String |
substituteExpressionLanguage(String stringToParse,
Map<String,Object> variableMap,
boolean allowStaticClasses,
boolean silent,
boolean lenient)
substitute an EL for objects
|
static Object |
substituteExpressionLanguageScript(String script,
Map<String,Object> variableMap,
boolean allowStaticClasses,
boolean silent,
boolean lenient)
substitute an EL for objects
|
static String |
substituteExpressionLanguageTemplate(String script,
Map<String,Object> variableMap,
boolean allowStaticClasses,
boolean silent,
boolean lenient)
substitute an EL for objects
|
static boolean |
substituteStrings(Map<String,String> stringSubstituteMap,
Object object)
see if the object has string fields with members in them (by memberUuid), and if so, export that member
|
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 void |
threadJoin(Thread thread)
join a thread
|
static void |
threadJoin(Thread thread,
long millis)
join a thread
|
static void |
threadLocalInRetriableCodeAssign()
used to indicate if we're in code that would be retried if there's a failure
|
static void |
threadLocalInRetriableCodeClear()
used to indicate if we're in code that would be retried if there's a failure
call within a finally block to remove
|
static Timestamp |
timestampIsoUtcSecondsConvertFromString(String string) |
static String |
timestampIsoUtcSecondsConvertToString(Timestamp timestamp) |
static Timestamp |
timestampObjectValue(Object input,
boolean allowNullBlank)
get the Timestamp value of an object
|
static String |
timestampToFileString(Date timestamp)
Convert a timestamp into a string: yyyy_MM_dd__HH_mm_ss_SSS
|
static String |
timestampToString(Date timestamp)
Convert a timestamp into a string: yyyy/MM/dd HH:mm:ss.SSS
|
static String |
tmpDir()
return the temp dir, either what is in the java env var, or something in the grouper conf
|
static String |
tmpDir(boolean appendSlashIfNotThere)
return the temp dir, either what is in the java env var, or something in the grouper conf
|
static <T> T[] |
toArray(Collection collection,
Class<T> theClass)
convert a list into an array of type of theClass
|
static Object |
toArray(Object objectOrArrayOrCollection)
Convert a list to an array with the type of the first element e.g.
|
static <T> List<T> |
toList(T... objects)
return a list of objects from varargs.
|
static List<Class<?>> |
toListClasses(Class<?>... classes)
convert classes to a list
|
static List<Object> |
toListObject(Object... objects)
return a list of objects from varargs.
|
static Map<String,String> |
toMap(String... strings)
turn some strings into a map
|
static <T> Set<T> |
toSet(T... objects)
return a set of objects from varargs.
|
static <T> Set<T> |
toSetObject(T object)
return a set of string
|
static <T> Set<Object> |
toSetObjectType(T... objects)
return a set of objects from varargs.
|
static String |
toString(Collection<Source> sources)
convert a collection of sources to a string
|
static String |
toString(InputStream input,
String encoding)
Get the contents of an
InputStream as a String. |
static String |
toStringFields(Object object,
Set<String> fieldNames)
print out an object by fields
|
static String |
toStringForLog(Object object)
print out various types of objects
|
static String |
toStringForLog(Object object,
boolean newLines)
print out various types of objects
|
static String |
toStringForLog(Object object,
int maxChars)
print out various types of objects
|
static Map<String,Object> |
toStringObjectMap(Object... stringObjects)
turn some strings into a map
|
static 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
or
yyyy/MM/dd HH:mm:ss
or
yyyy/MM/dd HH:mm:ss.SSS
or
yyyy/MM/dd HH:mm:ss.SSSSSS
|
static String |
trim(String str)
trim whitespace from string
|
static String |
trimToEmpty(String str)
trim to empty, convert null to empty
|
static String |
truncateAscii(String input,
int requiredLength)
find the length of ascii chars (non ascii are counted as three)
|
static <T> T |
typeCast(Object value,
Class<T> theClass)
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 Map<String,Object> |
typeCastStringStringMap(Map<String,Object> limitEnvVars)
process a string / string map and convert the values to a string/object map.
|
static Class |
unenhanceClass(Class theClass)
if a class is enhanced, get the unenhanced version
|
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 long
|
static boolean |
validEmail(String email) |
static void |
waitForInput()
wait for input
|
static String |
whitespaceNormalizeNewLines(String input)
normalize new lines to unix
|
static String |
whitespaceRemove(String input)
remove whitespace from string
|
static void |
writeStringToFile(File file,
String data,
String encoding)
Writes data to a file.
|
static void |
xmlAttribute(Writer writer,
String attributeName,
String attributeValue) |
static String |
xmlEscape(String input)
Convert an XML string to HTML to display on the screen
|
static String |
xmlEscape(String input,
boolean isEscape)
Convert an XML string to HTML to display on the screen
|
public static final String LOG_ERROR
public static final long ONE_KB
public static final long ONE_MB
public static final long ONE_GB
public static String PROMPT_KEY_SCHEMA_EXPORT_ALL_TABLES
public static String PROMPT_KEY_RESET_DATA
public static boolean stopPromptingUser
public static final DateFormat timestampIsoUtcSeconds
public static final String DATE_FORMAT
public static final String TIMESTAMP_FILE_FORMAT
public static final String DATE_FORMAT2
public static final String DATE_MINUTES_SECONDS_FORMAT
public static final String DATE_MINUTES_SECONDS_NO_SLASH_FORMAT
public static final String TIMESTAMP_FORMAT
public static final String TIMESTAMP_NO_SLASH_FORMAT
public static final int NOT_FOUND
public static final int DEFAULT_BUFFER_SIZE
public static final String[] EMPTY_STRING_ARRAY
String
array.public static final Object[] EMPTY_OBJECT_ARRAY
Object
array.public static final String EMPTY
""
.public static final int INDEX_NOT_FOUND
public static Map<Class<?>,Set<String>> stringFieldNames
public static final String JAVA_IO_TMPDIR
public static final String[] HTML_REPLACE
public static final String[] HTML_REPLACE_NO_SINGLE
public static final String[] HTML_SEARCH_NO_SINGLE
public static String gshRunScript(String script)
script
- lightWeight
- will use an abbreviated groovysh.profile for faster speed. built in commands
arent there and imports largely arent therepublic static String gshRunScript(String script, boolean lightWeight)
script
- lightWeight
- will use an abbreviated groovysh.profile for faster speed. built in commands
arent there and imports largely arent thereinputMap
- puts variables in a context to be retrieved with GrouperUtil.gshRetrieveInputValueObject(),
GrouperUtil.gshRetrieveInputValueString(), GrouperUtil.gshRetrieveInputValueInteger(), GrouperUtil.gshRetrieveInputValueBoolean()public static void setClear(Set<?> set)
public static void exceptionFinallyInjectOrThrow(Exception tryException, Exception finallyException)
tryException
- finallyException
- public static String normalize(String form, String text)
form
- text
- public static boolean isInRetriableCode()
public static void threadLocalInRetriableCodeAssign()
public static void threadLocalInRetriableCodeClear()
public static String splitTrimEmailAddresses(String emailAddresses)
emailAddresses
- public static String normalizeEmailAddresses(String emailAddresses)
emailAddresses
- can be whitespace, comma, or semi separatedpublic static boolean validEmail(String email)
email
- public static boolean subjectHasAttribute(Subject subject, String attributeName)
subject
- attributeName
- public static boolean matchSqlString(String sqlMatcher, String testText)
sqlMatcher
- testText
- public static <T> Set<T> setShorten(Set<T> theSet, int maxSize)
T
- theSet
- maxSize
- public static String formatNumberWithCommas(Long number)
number
- e.g. 12345678public static int compare(Comparable first, Comparable second)
first
- second
- public static Set<Source> convertSources(String sources)
sources
- is comma separated source id'spublic static Set<Source> convertSources(String[] sourceIds)
sourceIds
- is an array of source idspublic static String escapeSingleQuotes(String string)
string
- public static String escapeDoubleQuotes(String string)
string
- public static String escapeDoubleQuotesForString(String string)
string
- public static String escapeDoubleQuotesSlashesAndNewlinesForString(String string)
string
- public static String escapeNewlinesForString(String string)
string
- public static String escapeSlashesForString(String string)
string
- @Deprecated public static String convertSourcesToSqlInString(Set<Source> sources)
sources
- public static Map<String,String> toMap(String... strings)
strings
- public static Map<String,Object> toStringObjectMap(Object... stringObjects)
stringObjects
- is an array of String,Object,String,Object etc where the
Strings are the key, and the Object is the valuepublic static String convertMillisToFriendlyString(Integer duration)
duration
- public static String convertMillisToFriendlyString(Long duration)
duration
- public static void deleteFile(File file)
file
- public static String argAfter(String[] args, String argBefore)
args
- argBefore
- public static void append(StringBuilder result, String separatorIfResultNotEmpty, String stringToAppend)
result
- separatorIfResultNotEmpty
- stringToAppend
- public static String byteCountToDisplaySize(long size)
size
- The number of bytes.public static org.apache.commons.logging.Log getLog(Class<?> theClass)
theClass
- public static void fileCopyExampleResourceIfNotExist(String exampleResource, String resource)
exampleResource
- resource
- public static void logDirsCreateIfNotDone()
public static void logErrorNextException(org.apache.commons.logging.Log log, Throwable throwable, int timeToLive)
log
- loggerthrowable
- exception to look for next exceptions intimeToLive
- so we dont loop foreverpublic static boolean hasOption(int options, int option)
options
- option
- public static boolean isPrintGrouperLogsToConsole()
public static String fileCanonicalPath(File file)
file
- public static String logDirPrint()
public static String suffixAfterChar(String input, char theChar)
input
- stringtheChar
- charpublic static String oracleStandardNameFromJava(String javaName)
javaName
- the java convention namepublic static <K,V> boolean mapEquals(Map<K,V> first, Map<K,V> second)
K
- V
- first
- second
- public static <K,V> void mapDifferences(Map<K,V> first, Map<K,V> second, Set<K> differences, String prefix)
K
- V
- 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__"public static void sleep(long millis)
millis
- public static void sleepWithStdoutCountdown(int seconds)
seconds
- public static String encryptSha(String plaintext)
plaintext
- public static boolean injectInException(Throwable t, String message)
t
- message
- public static boolean findGrouperPropertiesDbMatch(boolean whitelist, String user, String url)
whitelist
- true if whitelist, false if blacklistuser
- is the db userurl
- is the db urlpublic static void promptUserAboutDbChanges(String reason, boolean checkResponse)
reason
- e.g. delete all tablescheckResponse
- true if the response from the user should be checked, or just display the promptpublic static String ldapConvertDnToSubPath(String dn, String baseDn, String searchDn)
dn
- baseDn
- if there is one, take it offsearchDn
- if there is one after the baseDn is off, take it offpublic static String ldapConvertDnToSpecificValue(String dn)
dn
- public static String ldapEscapeRdn(String rdnString)
rdnString
- An RDN: attribute=valuepublic static String ldapEscapeRdnValue(String rdnValue)
rdnString
- An RDN value: valuepublic static String ldapBushyDn(String groupName, String rdnAttributeName, String ouAttributeName, boolean performRdnEscaping, boolean performFilterEscaping)
groupName
- rdnAttributeName
- ouAttributeName
- performRdnEscaping
- performFilterEscaping
- public static String ldapBushyDn(String groupName, String rdnAttributeName, String rdnAttributeValue, String ouAttributeName, boolean performRdnEscaping, boolean performFilterEscaping)
groupName
- rdnAttributeName
- rdnAttributeValue
- ouAttributeName
- performRdnEscaping
- performFilterEscaping
- public static void promptUserAboutChanges(String reason, boolean checkResponse, String dbType, String url, String user)
reason
- e.g. delete all tablescheckResponse
- true if the response from the user should be checked, or just display the promptdbType
- should be db or ldapurl
- to check foruser
- user for dbpublic static String uniqueId()
public static File fileFromResourceName(String resourceName)
resourceName
- is the classpath locationpublic static String getLocationFromResourceName(String resourceName)
resourceName
- is the classpath locationpublic static URL computeUrl(String resourceName, boolean canBeNull)
resourceName
- canBeNull
- if cant be null, throw runtimepublic static ClassLoader classLoader()
public static <T> T[] nonNull(T[] array, Class<?> theClass)
T
- array
- theClass
- to make array frompublic static String stripSuffix(String string, String suffix)
string
- suffix
- public static String stripPrefix(String string, String prefix)
string
- prefix
- public static String prefixOrSuffix(String startString, String separator, boolean isPrefix)
startString
- is the string to start withseparator
- is the separator to split onisPrefix
- if thre prefix or suffix should be returnedpublic static String indent(String string, boolean failIfTypeNotFound)
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 , 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" ] } }
string
- failIfTypeNotFound
- public static String jsonConvertTo(Object object)
object
- public static String jsonConvertTo(Object object, boolean includeObjectNameWrapper)
object
- public static String jsonJacksonGetString(com.fasterxml.jackson.databind.JsonNode jsonNode, String fieldName)
jsonNode
- fieldName
- public static void jsonJacksonAssignString(com.fasterxml.jackson.databind.node.ObjectNode objectNode, String fieldName, String value)
jsonNode
- fieldName
- public static void jsonJacksonAssignBoolean(com.fasterxml.jackson.databind.node.ObjectNode objectNode, String fieldName, Boolean value)
jsonNode
- fieldName
- public static void jsonJacksonAssignLong(com.fasterxml.jackson.databind.node.ObjectNode objectNode, String fieldName, Long value)
jsonNode
- fieldName
- public static void jsonJacksonAssignStringArray(com.fasterxml.jackson.databind.node.ObjectNode objectNode, String fieldName, Collection<String> values)
jsonNode
- fieldName
- public static String jsonJacksonGetString(com.fasterxml.jackson.databind.JsonNode jsonNode, String fieldName, String defaultString)
jsonNode
- fieldName
- public static com.fasterxml.jackson.databind.JsonNode jsonJacksonGetNode(com.fasterxml.jackson.databind.JsonNode jsonNode, String fieldName)
jsonNode
- fieldName
- public static Set<String> jsonJacksonGetStringSet(com.fasterxml.jackson.databind.JsonNode jsonNode, String fieldName)
jsonNode
- fieldName
- public static Boolean jsonJacksonGetBoolean(com.fasterxml.jackson.databind.JsonNode jsonNode, String fieldName)
jsonNode
- fieldName
- public static Boolean jsonJacksonGetBoolean(com.fasterxml.jackson.databind.JsonNode jsonNode, String fieldName, Boolean defaultBoolean)
jsonNode
- fieldName
- defaultBoolean
- if null use this valuepublic static Long jsonJacksonGetLong(com.fasterxml.jackson.databind.JsonNode jsonNode, String fieldName)
jsonNode
- fieldName
- public static Long jsonJacksonGetLong(com.fasterxml.jackson.databind.JsonNode jsonNode, String fieldName, Long defaultLong)
jsonNode
- fieldName
- public static Integer jsonJacksonGetInteger(com.fasterxml.jackson.databind.JsonNode jsonNode, String fieldName)
jsonNode
- fieldName
- public static Integer jsonJacksonGetInteger(com.fasterxml.jackson.databind.JsonNode jsonNode, String fieldName, Integer defaultInteger)
jsonNode
- fieldName
- public static com.fasterxml.jackson.databind.node.ObjectNode jsonJacksonNode()
public static com.fasterxml.jackson.databind.node.ArrayNode jsonJacksonArrayNode()
public static com.fasterxml.jackson.databind.JsonNode jsonJacksonNode(String json)
public static String jsonJacksonToString(com.fasterxml.jackson.databind.JsonNode jsonNode)
public static String jsonConvertToNoWrap(Object object)
object
- public static void jsonConvertTo(Object object, Writer writer)
object
- writer
- public static Object jsonConvertFrom(Map<String,Class<?>> conversionMap, String json)
conversionMap
- is the class simple name to class of objects which are allowed to be brought back.
Note: only the top level object needs to be registeredjson
- public static <T> T jsonConvertFrom(String json, Class<T> theClass)
json
- is the json string, not wrapped with a simple class nametheClass
- is the class that the object should be coverted into.
Note: only the top level object needs to be registeredpublic static String extensionFromName(String name)
name
- public static boolean nameInFolderDirect(String name, String folder)
see if a name is in a folder (not subfolder). if name is a:b:c, and folder is a:b, then yes if a:b:c and a:c, then no if a:b:c and a, then no
name
- folder
- public static Class forName(String origClassName)
Returns the class object.
origClassName
- is fully qualifiedpublic static <T> T newInstance(Class<T> theClass)
T
- template typetheClass
- public static String parentStemNameFromName(String name)
name
- public static String parentStemNameFromName(String name, boolean nullForRoot)
name
- nullForRoot
- null for root, otherwise colonpublic static String defaultIfBlank(String string, String defaultStringIfBlank)
string
- defaultStringIfBlank
- public static <T> T defaultIfNull(T theValue, T defaultIfTheValueIsNull)
T
- theValue
- first inputdefaultIfTheValueIsNull
- second inputpublic static <T> void addIfNotThere(Collection<T> list, Collection<T> listToAdd)
T
- list
- to add tolistToAdd
- each element will be added to list, or null if nonepublic static String toStringFields(Object object, Set<String> fieldNames)
object
- fieldNames
- public static String collectionToString(Collection collection)
collection
- public static String setToString(Set set)
set
- @Deprecated public static String MapToString(Map map)
map
- public static String mapToString(Map map)
map
- public static String toStringForLog(Object object)
object
- public static String toStringForLog(Object object, boolean newLines)
object
- public static String toStringForLog(Object object, int maxChars)
object
- maxChars
- is the max chars that should be returned (abbreviate if longer), or -1 for any amountpublic static int batchNumberOfBatches(int count, int batchSize)
count
- is size of setbatchSize
- public static int batchNumberOfBatches(Collection<?> collection, int batchSize)
collection
- batchSize
- public static Set<String> findParentStemNames(Collection<Group> groups)
groups
- public static Set<String> findParentStemNames(String objectName)
objectName
- public static <T> List<T> batchList(List<T> collection, int batchSize, int batchIndex)
T
- template typecollection
- batchSize
- batchIndex
- public static String[] splitTrim(String input, String separator)
input
- is the delimited input to split and trimseparator
- is what to split onpublic static List<String> splitTrimToList(String input, String separator)
input
- is the delimited input to split and trimseparator
- is what to split onpublic static Set<String> splitTrimToSet(String input, String separator)
input
- is the delimited input to split and trimseparator
- is what to split onpublic static String[] splitTrim(String input, String separator, boolean treatAdjacentSeparatorsAsOne)
input
- is the delimited input to split and trimseparator
- is what to split ontreatAdjacentSeparatorsAsOne
- public static String escapeUrlEncode(String string)
string
- inputpublic static String escapeUrlDecode(String string)
string
- inputpublic static <T> List<T> nonNull(List<T> list)
T
- list
- public static <T> Collection<T> nonNull(Collection<T> list)
T
- list
- public static <T> Set<T> nonNull(Set<T> set)
T
- set
- public static <K,V> Map<K,V> nonNull(Map<K,V> map)
K
- key of mapV
- value of mapmap
- is mappublic static <T> List<T> toList(T... objects)
T
- template type of the objectsobjects
- public static List<Object> toListObject(Object... objects)
objects
- public static List<Class<?>> toListClasses(Class<?>... classes)
classes
- public static <T> Set<T> toSet(T... objects)
T
- template type of the objectsobjects
- public static <T> Set<Object> toSetObjectType(T... objects)
T
- template type of the objectsobjects
- public static <T> Set<T> toSetObject(T object)
T
- template type of the objectsobject
- public static String timestampIsoUtcSecondsConvertToString(Timestamp timestamp)
timestamp
- public static Timestamp timestampIsoUtcSecondsConvertFromString(String string)
timestamp
- public static void assertion(boolean isTrue, String reason)
isTrue
- reason
- public static void assignField(Class theClass, Object invokeOn, String fieldName, Object dataToAssign, boolean callOnSupers, boolean overrideSecurity, boolean typeCast, Class<? extends Annotation> annotationWithValueOverride)
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 overridepublic static void assignField(Class theClass, Object invokeOn, String fieldName, Object dataToAssign, Class<? extends Annotation> annotationWithValueOverride)
theClass
- the class which has the methodinvokeOn
- to call on or null for staticfieldName
- method name to calldataToAssign
- dataannotationWithValueOverride
- annotation with value of overridepublic static void assignField(Field field, Object invokeOn, Object dataToAssign, boolean overrideSecurity, boolean typeCast)
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 typecastpublic static Iterator iterator(Object collection)
collection
- public static int length(Object arrayOrCollection)
arrayOrCollection
- public static boolean isArrayOrCollection(Object arrayOrCollection)
arrayOrCollection
- public static Object next(Object arrayOrCollection, Iterator iterator, int index)
arrayOrCollection
- iterator
- index
- public static Object remove(Object arrayOrCollection, int index)
arrayOrCollection
- index
- public static Object remove(Object arrayOrCollection, Iterator iterator, int index)
arrayOrCollection
- iterator
- index
- public static String classesString(Object object)
object
- public static String classNameCollection(Object object)
object
- public static String className(Object object)
object
- public static Class unenhanceClass(Class theClass)
theClass
- public static void assignField(Field field, Object invokeOn, Object dataToAssign, boolean overrideSecurity, boolean typeCast, Class<? extends Annotation> annotationWithValueOverride)
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 nonepublic static void assignField(Object invokeOn, String fieldName, Object dataToAssign)
invokeOn
- to call on or null for staticfieldName
- method name to calldataToAssign
- datapublic static Field field(Class theClass, String fieldName, boolean callOnSupers, boolean throwExceptionIfNotFound)
theClass
- fieldName
- callOnSupers
- true if superclasses should be looked in for the fieldthrowExceptionIfNotFound
- will throw runtime exception if not foundpublic static Set<String> fieldNames(Class theClass, Class fieldType, boolean includeStaticFields)
theClass
- fieldType
- or null for allincludeStaticFields
- public static String dbVersionDescribeDifferences(Object theOld, Object theNew, Set<String> differentFieldNames)
theOld
- theNew
- differentFieldNames
- public static Set<String> fieldNames(Class theClass, Class superclassToStopAt, Class<?> fieldType, boolean includeSuperclassToStopAt, boolean includeStaticFields, boolean includeFinalFields)
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 includedpublic static Set<String> fieldNames(Class theClass, Class superclassToStopAt, Class<?> fieldType, boolean includeSuperclassToStopAt, boolean includeStaticFields, boolean includeFinalFields, Class<? extends Annotation> markerAnnotationToIngore)
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 listpublic static Set<String> fieldNames(Class theClass, Class superclassToStopAt, Class<? extends Annotation> markerAnnotationToIngore)
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 listpublic static Set<Field> fields(Class theClass, Class superclassToStopAt, Class fieldType, boolean includeSuperclassToStopAt, boolean includeStaticFields, boolean includeFinalFields, Class<? extends Annotation> markerAnnotation, boolean includeAnnotation)
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 excludepublic static Set<Field> fields(Class theClass, Class superclassToStopAt, Class<? extends Annotation> markerAnnotation, boolean includeAnnotation)
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 excludepublic static Set<String> compareObjectFields(Object first, Object second, Set<String> fieldsToCompare, String mapPrefix)
first
- second
- fieldsToCompare
- mapPrefix
- is the prefix for maps which are compared (e.g. attribute__)public static <T> T clone(T object, Set<String> fieldsToClone)
T
- templateobject
- fieldsToClone
- public static <T> void cloneFields(T object, T result, Set<String> fieldsToClone)
T
- templateobject
- result
- fieldsToClone
- public static <T> T cloneValue(T value)
T
- templatevalue
- public static Set<String> methodNames(Class<?> theClass, Class<?> superclassToStopAt, boolean includeSuperclassToStopAt, boolean includeStaticMethods)
theClass
- superclassToStopAt
- includeSuperclassToStopAt
- includeStaticMethods
- public static Method methodByName(Class<?> theClass, String methodName, Class<?> superclassToStopAt, boolean includeSuperclassToStopAt, boolean includeStaticMethods, boolean exceptionIfNotFound)
theClass
- methodName
- superclassToStopAt
- includeSuperclassToStopAt
- includeStaticMethods
- exceptionIfNotFound
- public static void methodsHelper(Class<?> theClass, Class<?> superclassToStopAt, boolean includeSuperclassToStopAt, boolean includeStaticMethods, Class<? extends Annotation> markerAnnotation, boolean includeAnnotation, Set<Method> methodSet)
theClass
- superclassToStopAt
- includeSuperclassToStopAt
- includeStaticMethods
- markerAnnotation
- includeAnnotation
- methodSet
- public static Method method(Class<?> theClass, String methodName, Object paramTypesOrArrayOrList, Class<?> superclassToStopAt, boolean includeSuperclassToStopAt, boolean isStaticOrInstance, Class<? extends Annotation> markerAnnotation, boolean includeAnnotation)
theClass
- methodName
- paramTypesOrArrayOrList
- types of the paramssuperclassToStopAt
- includeSuperclassToStopAt
- isStaticOrInstance
- true if staticmarkerAnnotation
- includeAnnotation
- public static Object fieldValue(Class theClass, Object invokeOn, String fieldName, boolean callOnSupers, boolean overrideSecurity, boolean considerFieldValuable)
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 methodsconsiderFieldValuable
- if the FieldValueable interface should be consideredpublic static Object fieldValue(Field field, Object invokeOn)
field
- invokeOn
- public static Object fieldValue(Field field, Object invokeOn, boolean overrideSecurity)
field
- invokeOn
- overrideSecurity
- public static Object fieldValue(Object invokeOn, String fieldName)
invokeOn
- to call on or null for staticfieldName
- method name to callpublic static Object callMethod(Class theClass, Object invokeOn, String methodName)
theClass
- the class which has the methodinvokeOn
- to call on or null for staticmethodName
- method name to callpublic static Object callMethod(Class theClass, Object invokeOn, String methodName, Object paramTypesOrArrayOrList, Object paramsOrListOrArray)
theClass
- the class which has the methodinvokeOn
- to call on or null for staticmethodName
- method name to callparamTypesOrArrayOrList
- types of the paramsparamsOrListOrArray
- datapublic static Object callMethod(Class theClass, Object invokeOn, String methodName, Object paramTypesOrArrayOrList, Object paramsOrListOrArray, boolean callOnSupers)
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 superspublic static <T> T construct(Class<T> theClass, Class[] types, Object[] args)
T
- theClass
- args
- types
- public static <K,V> Map<K,V> listToMap(List<V> list, Class<K> keyClass, Class<V> valueClass, String keyPropertyName)
turn a list into map
K
- is the template of the key of the mapV
- is the template of the value of the maplist
- is the list to convertvalueClass
- type of the result (can typecast)keyClass
- is the type of the key of the mapkeyPropertyName
- name of the javabeans property for the key in the mappublic static Object callMethod(Class theClass, Object invokeOn, String methodName, Object paramTypesOrArrayOrList, Object paramsOrListOrArray, boolean callOnSupers, boolean overrideSecurity)
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 methodspublic static Object invokeMethod(Method method, Object invokeOn)
method
- to invokeinvokeOn
- if NO_PARAMS then will not pass in params.public static Object invokeMethod(Method method, Object invokeOn, Object paramsOrListOrArray)
method
- to invokeinvokeOn
- paramsOrListOrArray
- must be an arg. If null, will pass null.
if NO_PARAMS then will not pass in params.public static Object toArray(Object objectOrArrayOrCollection)
objectOrArrayOrCollection
- is a listpublic static <T> T[] toArray(Collection collection, Class<T> theClass)
T
- is the type of the arraycollection
- list to converttheClass
- type of array to returnpublic static Object callMethod(Class theClass, String methodName)
theClass
- the class which has the methodmethodName
- method name to callpublic static Object callMethod(Class theClass, String methodName, boolean callOnSupers)
theClass
- the class which has the methodmethodName
- method name to callcallOnSupers
- if we should try the super classes if not exists in this classpublic static Object callMethod(Class theClass, String methodName, Object paramTypesOrArrayOrList, Object paramsOrListOrArray)
theClass
- the class which has the methodmethodName
- method name to callparamTypesOrArrayOrList
- types of the paramsparamsOrListOrArray
- datapublic static Object callMethod(Object invokeOn, String methodName)
invokeOn
- instance to invoke onmethodName
- method name to call not exists in this classpublic static String replace(String text, Object searchFor, Object replaceWith)
text
- string to look insearchFor
- string array to search forreplaceWith
- string array to replace withpublic static String replace(String text, Object searchFor, Object replaceWith, boolean recurse)
text
- string to look insearchFor
- string array to search forreplaceWith
- string array to replace withrecurse
- if true then do multiple replaces (on the replacements)public static String replace(String text, Object searchFor, Object replaceWith, boolean recurse, boolean removeIfFound)
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 foundpublic static String replace(String text, String repl, String with)
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"
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 nullnull
if
null String inputreplace(String text, String repl, String with, int max)
public static String replace(String text, String repl, String with, int max)
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"
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 maximumnull
if
null String inputpublic static boolean isEmpty(String str)
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().
str
- the String to check, may be nulltrue
if the String is empty or nullpublic static void replace(StringBuffer outBuffer, String text, Object searchFor, Object replaceWith)
outBuffer
- stringbuffer to write totext
- string to look insearchFor
- string array to search forreplaceWith
- string array to replace withpublic static void replace(StringBuffer outBuffer, String text, Object searchFor, Object replaceWith, boolean recurse)
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)public static void replace(Writer outWriter, String text, Object searchFor, Object replaceWith)
outWriter
- writer to write totext
- string to look insearchFor
- string array to search forreplaceWith
- string array to replace withpublic static void replace(Writer outWriter, String text, Object searchFor, Object replaceWith, boolean recurse)
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)public static long packInts(int first, int second)
first
- is first intsecond
- is second intpublic static int unpackInt(long theLong, boolean isFirst)
theLong
- to unpackisFirst
- true for first, false for secondpublic static Object get(Object arrayOrCollection, int index)
arrayOrCollection
- index
- public static String toString(Collection<Source> sources)
sources
- public static String toStringSafe(Object object)
object
- public static boolean booleanValue(Object object)
object
- public static boolean booleanValue(Object object, boolean defaultBoolean)
object
- defaultBoolean
- if object is null or emptypublic static Boolean booleanObjectValue(Object object)
object
- public static boolean nullOrBlank(Object object)
object
- public static Method getter(Class theClass, String fieldName, boolean callOnSupers, boolean throwExceptionIfNotFound)
theClass
- fieldName
- callOnSupers
- true if superclasses should be looked in for the getterthrowExceptionIfNotFound
- will throw runtime exception if not foundpublic static Method getterHelper(Class theClass, String fieldName, String getterName, boolean callOnSupers, boolean throwExceptionIfNotFound)
theClass
- fieldName
- getterName
- name of settercallOnSupers
- true if superclasses should be looked in for the setterthrowExceptionIfNotFound
- will throw runtime exception if not foundpublic static String getterNameFromPropertyName(Class theClass, String propertyName)
propertyName
- public static Set<Method> getters(Class theClass, Class superclassToStopAt, Class<? extends Annotation> markerAnnotation, Boolean includeAnnotation)
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 excludepublic static boolean isGetter(Method method)
method
- public static void assignSetter(Object invokeOn, String fieldName, Object dataToAssign, boolean typeCast)
invokeOn
- to call on or null for staticfieldName
- method name to calldataToAssign
- datatypeCast
- will typecast if truePropertyDoesNotExistUnchecked
- if not therepublic static boolean isSetter(Method method)
method
- public static Method setter(Class theClass, String fieldName, boolean callOnSupers, boolean throwExceptionIfNotFound)
theClass
- fieldName
- callOnSupers
- true if superclasses should be looked in for the setterthrowExceptionIfNotFound
- will throw runtime exception if not foundpublic static Method setterHelper(Class theClass, String fieldName, String setterName, boolean callOnSupers, boolean throwExceptionIfNotFound)
theClass
- fieldName
- setterName
- name of settercallOnSupers
- true if superclasses should be looked in for the setterthrowExceptionIfNotFound
- will throw runtime exception if not foundpublic static String setterNameFromPropertyName(String propertyName)
propertyName
- public static Set<Method> setters(Class theClass, Class superclassToStopAt, Class<?> fieldType, boolean includeSuperclassToStopAt, Class<? extends Annotation> markerAnnotation, boolean includeAnnotation)
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 excludepublic static String propertyName(Method method)
method
- public static <T> List<T> propertyList(Collection<?> collection, String propertyName, Class<T> fieldType)
T
- collection
- propertyName
- fieldType
- public static Class propertyType(Class theClass, String propertyName)
theClass
- propertyName
- public static <T> T typeCast(Object value, Class<T> theClass)
T
- is template typevalue
- theClass
- 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
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 filepublic static Long dateLongValue(String date)
date
- public static String dateStringValue(Date date)
date
- public static String dateStringValue(Long theDate)
theDate
- public static Date dateValue(Object inputObject)
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
inputObject
- is the String or Date to convertpublic static Date stringToDate2(String input)
input
- public static int monthInt(String mon)
mon
- public static boolean isBlank(Object input)
input
- public static <T> T typeCast(Object value, Class<T> theClass, boolean convertNullToDefaultPrimitive, boolean useNewInstanceHooks)
T
- is the type to returnvalue
- 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 itpublic static boolean isScalar(Class<?> type)
type
- public static Timestamp toTimestamp(Object input)
Convert a string or object to a timestamp (could be string, date, timestamp, etc) yyyymmdd or yyyy/MM/dd or yyyy/MM/dd HH:mm:ss or yyyy/MM/dd HH:mm:ss.SSS or yyyy/MM/dd HH:mm:ss.SSSSSS
input
- RuntimeException
- if invalid formatpublic static String stringValue(Object input)
input
- is the object to convertpublic static String timestampToString(Date timestamp)
timestamp
- public static String timestampToFileString(Date timestamp)
timestamp
- public static String stringValue(Date date)
date
- public static Timestamp stringToTimestamp(String input)
convert a string to timestamp based on the following formats: yyyyMMdd yyyy/MM/dd yyyy/MM/dd HH:mm:ss yyyy/MM/dd HH:mm:ss.SSS yyyy/MM/dd HH:mm:ss.SSSSSS
input
- public static BigDecimal bigDecimalObjectValue(Object input)
input
- public static Byte byteObjectValue(Object input)
input
- public static byte byteValue(Object input)
input
- public static Double doubleObjectValue(Object input, boolean allowNullBlank)
input
- is a number or StringallowNullBlank
- used to default to false, if true, return null if nul inputtedpublic static double doubleValue(Object input)
input
- is a number or Stringpublic static double doubleValueNoError(Object input)
input
- is a number or Stringpublic static Float floatObjectValue(Object input, boolean allowNullBlank)
input
- is a number or StringallowNullBlank
- true if allow null or blankpublic static float floatValue(Object input)
input
- is a number or Stringpublic static float floatValueNoError(Object input)
input
- is a number or Stringpublic static Integer intObjectValue(Object input, boolean allowNullBlank)
input
- is a number or StringallowNullBlank
- true if convert null or blank to nullpublic static int intValue(Object input)
input
- public static int intValue(Object input, int valueIfNull)
input
- valueIfNull
- is if the input is null or empty, return this valuepublic static Set<String> stemCalculateTopLevelStems(Set<String> stems)
public static void stemRemoveChildStemsOfTopStem(List<Stem> stems)
stems
- public static void stemRemoveAncestorStemsOfChildStem(Collection<String> stemNames)
stems
- public static void stemRemoveChildStemsOfTopStemName(Collection<String> stemNames)
stems
- public static int intValueNoError(Object input)
input
- is a number or Stringpublic static Long longObjectValue(Object input, boolean allowNullBlank)
input
- is a number or StringallowNullBlank
- true if null or blank converts to nullpublic static Timestamp timestampObjectValue(Object input, boolean allowNullBlank)
input
- is a timestamp or longallowNullBlank
- true if null or blank converts to nullpublic static long longValue(Object input)
input
- public static long longValue(Object input, long valueIfNull)
input
- valueIfNull
- is if the input is null or empty, return this valuepublic static long longValueNoError(Object input)
input
- is a number or Stringpublic static Short shortObjectValue(Object input)
input
- is a number or Stringpublic static short shortValue(Object input)
input
- public static Character charObjectValue(Object input)
input
- allow null, return nullpublic static char charValue(Object input)
input
- public static void createParentDirectories(File file)
file
- public static void saveStringIntoFile(File file, String contents)
file
- is the file to save tocontents
- is the contents of the filepublic static String whitespaceRemove(String input)
public static String whitespaceNormalizeNewLines(String input)
input
- public static boolean saveStringIntoFile(File file, String contents, boolean onlyIfDifferentContents, boolean ignoreWhitespace)
file
- is the file to save tocontents
- is the contents of the fileonlyIfDifferentContents
- true if only saving due to different contentsignoreWhitespace
- true to ignore whitespacepublic static void writeStringToFile(File file, String data, String encoding) throws IOException
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.
file
- the file to write.data
- The content to write to the file.encoding
- encoding to useIOException
- in case of an I/O errorUnsupportedEncodingException
- if the encoding is not supported
by the VMpublic static String readFileIntoString(File file)
file
- is the file to read into a stringpublic static String readResourceIntoString(String resourceName, boolean allowNull)
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.public static String readFileToString(File file, String encoding) throws IOException
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.
file
- the file to read.encoding
- the encoding to useIOException
- in case of an I/O errorpublic static String replaceWhitespaceWithSpace(String input)
input
- public static void closeQuietly(InputStream input)
InputStream
.
Equivalent to InputStream.close()
, except any exceptions will be ignored.input
- A (possibly null) InputStreampublic static void closeQuietly(OutputStream output)
OutputStream
.
Equivalent to OutputStream.close()
, except any exceptions will be ignored.output
- A (possibly null) OutputStreampublic static void closeQuietly(Reader input)
Reader
.
Equivalent to Reader.close()
, except any exceptions will be ignored.input
- A (possibly null) Readerpublic static void closeQuietly(Writer writer)
writer
- public static void closeQuietly(XMLStreamWriter writer)
writer
- public static String toString(InputStream input, String encoding) throws IOException
InputStream
as a String.input
- the InputStream
to read fromencoding
- The name of a supported character encoding. See the
IANA
Charset Registry for a list of valid encoding types.String
IOException
- In case of an I/O problempublic static void copy(InputStream input, Writer output, String encoding) throws IOException
InputStream
to chars on a
Writer
, using the specified encoding.input
- the InputStream
to read fromoutput
- the Writer
to write toencoding
- The name of a supported character encoding. See the
IANA
Charset Registry for a list of valid encoding types.IOException
- In case of an I/O problempublic static int copy(Reader input, Writer output) throws IOException
Reader
to a Writer
.input
- the Reader
to read fromoutput
- the Writer
to write toIOException
- In case of an I/O problempublic static void threadJoin(Thread thread)
thread
- public static void threadJoin(Thread thread, long millis)
thread
- millis
- public static String convertLongToChar(long theLong)
theLong
- is the long (less than 62) to convert to a 1 character stringpublic static String convertLongToCharSmall(long theLong)
theLong
- is the long (less than 36) to convert to a 1 character stringpublic static String convertLongToString(long theLong)
theLong
- is the long to convertpublic static String convertLongToStringSmall(long theLong)
theLong
- is the long to convertpublic static char incrementChar(char theChar)
theChar
- public static char[] incrementStringInt(char[] string)
string
- public static Properties propertiesFromResourceName(String resourceName)
resourceName
- public static Properties propertiesFromUrl(String urlString, boolean useCache, boolean useFailSafeCache, GrouperHtmlFilter grouperHtmlFilter)
urlString
- e.g. http://localhost:8090/grouper/test.propertiesuseCache
- if should cache for 2 minutesuseFailSafeCache
- if should use this cache for 1 day if the url cant connectgrouperHtmlFilter
- public static Properties propertiesFromFile(File file, boolean useCache)
file
- useCache
- public static Properties propertiesFromResourceName(String resourceName, boolean useCache, boolean exceptionIfNotExist)
resourceName
- useCache
- exceptionIfNotExist
- public static <E extends Enum<?>> E enumValueOfIgnoreCase(Class<E> theEnumClass, String string, boolean exceptionOnNotFound) throws RuntimeException
E
- generic typetheEnumClass
- class of the enumstring
- exceptionOnNotFound
- true if exception should be thrown on not foundRuntimeException
- if there is a problempublic static <E extends Enum<?>> E enumValueOfIgnoreCase(Class<E> theEnumClass, String string, boolean exceptionOnNotFound, boolean exceptionIfInvalid) throws RuntimeException
E
- generic typetheEnumClass
- class of the enumstring
- exceptionOnNotFound
- true if exception should be thrown on not foundexceptionIfInvalid
- if there is a string, but it is invalid, if should throw exceptionRuntimeException
- if there is a problempublic static PropertyDescriptor retrievePropertyDescriptor(Object object, String property)
object
- property
- public static Object propertyValue(Object object, String property)
object
- property
- public static String propertiesValue(Properties properties, String key)
properties
- key
- public static String propertiesValue(Properties properties, Map<String,String> overrideMap, String key)
properties
- overrideMap
- for testing, to override some properties valueskey
- public static String propertiesValue(Properties properties, Map<String,String> overrideMap, Map<String,String> overrideMap2, String key)
properties
- overrideMap
- for testing or threadlocal, to override some properties valuesoverrideMap2
- for testing, to provide some properties valueskey
- public static boolean propertiesValueBoolean(Properties properties, String propertyName, boolean defaultValue)
properties
- propertyName
- defaultValue
- public static boolean propertiesValueBoolean(Properties properties, Map<String,String> overrideMap, String propertyName, boolean defaultValue)
properties
- overrideMap
- for testing to override propertiespropertyName
- defaultValue
- public static boolean propertiesValueBoolean(Properties properties, Map<String,String> overrideMap, Map<String,String> overrideMap2, String propertyName, boolean defaultValue)
properties
- overrideMap
- for testing or threadlocal to override propertiesoverrideMap2
- for testing or threadlocal to override propertiespropertyName
- defaultValue
- public static void closeQuietly(Connection connection)
connection
- public static void closeQuietly(org.hibernate.Session session)
session
- public static void closeQuietly(Statement statement)
statement
- public static void closeQuietly(ResultSet resultSet)
resultSet
- public static String hostname()
public static boolean isAscii(char input)
input
- public static int lengthAscii(String input)
input
- public static void rollbackQuietly(org.hibernate.Transaction transaction)
transaction
- public static void rollbackQuietly(Connection connection)
connection
- public static int stringLength(String string)
string
- public static void closeQuietly(Closeable closeable)
closeable
- public static boolean fileCreateNewFile(File file)
file
- public static String truncateAscii(String input, int requiredLength)
input
- is the string to operate onrequiredLength
- length we need the string to bepublic static String subjectToString(Subject subject)
subject
- public static String readFromFileIfFile(String in, boolean disableExternalFileLookup)
in
- disableExternalFileLookup
- public static void mkdirs(File dir)
dir
- public static String fixRelativePath(String inPath)
inPath
- public static boolean equals(String first, String second)
first
- second
- public static boolean isBlank(String str)
Checks if a String is whitespace, empty ("") or null.
isBlank(null) = true isBlank("") = true isBlank(" ") = true isBlank("bob") = false isBlank(" bob ") = false
str
- the String to check, may be nulltrue
if the String is null, empty or whitespacepublic static boolean isNotBlank(String str)
str
- public static String trim(String str)
str
- public static boolean equalsIgnoreCase(String str1, String str2)
str1
- str2
- public static String trimToEmpty(String str)
str
- public static String abbreviate(String str, int maxWidth)
Abbreviates a String using ellipses. This will turn "Now is the time for all good men" into "Now is the time for..."
Specifically:
str
is less than maxWidth
characters
long, return it.(substring(str, 0, max-3) + "...")
.maxWidth
is less than 4
, throw an
IllegalArgumentException
.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
str
- the String to check, may be nullmaxWidth
- maximum length of result String, must be at least 4null
if null String inputIllegalArgumentException
- if the width is too smallpublic static String abbreviate(String str, int offset, int maxWidth)
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
str
- the String to check, may be nulloffset
- left edge of source StringmaxWidth
- maximum length of result String, must be at least 4null
if null String inputIllegalArgumentException
- if the width is too smallpublic static String[] split(String str)
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 returns null
.
StringUtils.split(null) = null StringUtils.split("") = [] StringUtils.split("abc def") = ["abc", "def"] StringUtils.split("abc def") = ["abc", "def"] StringUtils.split(" abc ") = ["abc"]
str
- the String to parse, may be nullnull
if null String inputpublic static String[] split(String str, char separatorChar)
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 returns null
.
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"]
str
- the String to parse, may be nullseparatorChar
- the character used as the delimiter,
null
splits on whitespacenull
if null String inputpublic static String[] split(String str, String separatorChars)
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 returns null
.
A null
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"]
str
- the String to parse, may be nullseparatorChars
- the characters used as the delimiters,
null
splits on whitespacenull
if null String inputpublic static String[] split(String str, String separatorChars, int max)
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 returns null
.
A null
separatorChars splits on whitespace.
If more than max
delimited substrings are found, the last
returned string includes all characters after the first max - 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"]
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 limitnull
if null String inputpublic static String[] splitByWholeSeparator(String str, String separator)
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 returns null
.
A null
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"]
str
- the String to parse, may be nullseparator
- String containing the String to be used as a delimiter,
null
splits on whitespacenull
if null String was inputpublic static String[] splitByWholeSeparator(String str, String separator, int max)
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 returns null
.
A null
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"]
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.null
if null String was inputpublic static String[] splitPreserveAllTokens(String str)
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 returns null
.
StringUtils.splitPreserveAllTokens(null) = null StringUtils.splitPreserveAllTokens("") = [] StringUtils.splitPreserveAllTokens("abc def") = ["abc", "def"] StringUtils.splitPreserveAllTokens("abc def") = ["abc", "", "def"] StringUtils.splitPreserveAllTokens(" abc ") = ["", "abc", ""]
str
- the String to parse, may be null
null
if null String inputpublic 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. 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 returns null
.
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", ""]
str
- the String to parse, may be null
separatorChar
- the character used as the delimiter,
null
splits on whitespacenull
if null String inputpublic 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. 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 returns null
.
A null
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", ""]
str
- the String to parse, may be null
separatorChars
- the characters used as the delimiters,
null
splits on whitespacenull
if null String inputpublic 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.
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 returns null
.
A null
separatorChars splits on whitespace.
If more than max
delimited substrings are found, the last
returned string includes all characters after the first max - 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"]
str
- the String to parse, may be null
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 limitnull
if null String inputpublic static String join(Object[] array)
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"
array
- the array of values to join together, may be nullnull
if null array inputpublic static String join(Object[] array, char separator)
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"
array
- the array of values to join together, may be nullseparator
- the separator character to usenull
if null array inputpublic static String join(Object[] array, String separator)
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"
array
- the array of values to join together, may be nullseparator
- the separator character to use, null treated as ""null
if null array inputpublic static String join(Iterator iterator, char separator)
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)
.
iterator
- the Iterator
of values to join together, may be nullseparator
- the separator character to usenull
if null iterator inputpublic static String join(Iterator iterator, String separator)
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)
.
iterator
- the Iterator
of values to join together, may be nullseparator
- the separator character to use, null treated as ""null
if null iterator inputpublic static String defaultString(String str)
Returns either the passed in String,
or if the String is null
, an empty String ("").
StringUtils.defaultString(null) = "" StringUtils.defaultString("") = "" StringUtils.defaultString("bat") = "bat"
str
- the String to check, may be nullnull
String.valueOf(Object)
public static String defaultString(String str, String defaultStr)
Returns either the passed in String, or if the String is
null
, the value of defaultStr
.
StringUtils.defaultString(null, "NULL") = "NULL" StringUtils.defaultString("", "NULL") = "" StringUtils.defaultString("bat", "NULL") = "bat"
str
- the String to check, may be nulldefaultStr
- the default String to return
if the input is null
, may be nullnull
String.valueOf(Object)
public static String defaultIfEmpty(String str, String defaultStr)
Returns either the passed in String, or if the String is
empty or null
, the value of defaultStr
.
StringUtils.defaultIfEmpty(null, "NULL") = "NULL" StringUtils.defaultIfEmpty("", "NULL") = "NULL" StringUtils.defaultIfEmpty("bat", "NULL") = "bat"
str
- the String to check, may be nulldefaultStr
- the default String to return
if the input is empty ("") or null
, may be nullpublic static String capitalize(String str)
Capitalizes a String changing the first letter to title case as
per Character.toTitleCase(char)
. No other letters are changed.
null
input String returns null
.
StringUtils.capitalize(null) = null StringUtils.capitalize("") = "" StringUtils.capitalize("cat") = "Cat" StringUtils.capitalize("cAt") = "CAt"
str
- the String to capitalize, may be nullnull
if null String inputpublic static boolean contains(String str, char searchChar)
Checks if String contains a search character, handling null
.
This method uses String.indexOf(int)
.
A null
or empty ("") String will return false
.
StringUtils.contains(null, *) = false StringUtils.contains("", *) = false StringUtils.contains("abc", 'a') = true StringUtils.contains("abc", 'z') = false
str
- the String to check, may be nullsearchChar
- the character to findnull
string inputpublic static boolean contains(String str, String searchStr)
Checks if String contains a search String, handling null
.
This method uses String.indexOf(int)
.
A null
String will return false
.
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
str
- the String to check, may be nullsearchStr
- the String to find, may be nullnull
string inputpublic static boolean equals(Object object1, Object object2)
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
object1
- the first object, may be null
object2
- the second object, may be null
true
if the values of both objects are the samepublic static boolean equalsSet(Set<?> set1, Set<?> set2)
set1
- set2
- public static boolean equalsList(List<?> list1, List<?> list2)
list1
- list2
- public static String getFullStackTrace(Throwable throwable)
A way to get the entire nested stack-trace of an throwable.
throwable
- the Throwable
to be examinedpublic static String substituteExpressionLanguage(String stringToParse, Map<String,Object> variableMap)
stringToParse
- variableMap
- @Deprecated public static String substituteExpressionLanguage(String stringToParse, Map<String,Object> variableMap, boolean allowStaticClasses)
stringToParse
- variableMap
- allowStaticClasses
- if true allow static classes not registered with contextpublic static String substituteExpressionLanguage(String stringToParse, Map<String,Object> variableMap, boolean allowStaticClasses, boolean silent)
stringToParse
- variableMap
- allowStaticClasses
- if true allow static classes not registered with contextsilent
- if silent mode, swallow exceptions (warn), and dont warn when variable not foundpublic static String substituteExpressionLanguage(String stringToParse, Map<String,Object> variableMap, boolean allowStaticClasses, boolean silent, boolean lenient)
stringToParse
- variableMap
- allowStaticClasses
- if true allow static classes not registered with contextsilent
- if silent mode, swallow exceptions (warn), and dont warn when variable not foundlenient
- false if undefined variables should throw an exception. if lenient is true (default)
then undefined variables are nullpublic static Object substituteExpressionLanguageScript(String script, Map<String,Object> variableMap, boolean allowStaticClasses, boolean silent, boolean lenient)
stringToParse
- variableMap
- allowStaticClasses
- if true allow static classes not registered with contextsilent
- if silent mode, swallow exceptions (warn), and dont warn when variable not foundlenient
- false if undefined variables should throw an exception. if lenient is true (default)
then undefined variables are nullpublic static Throwable[] getThrowables(Throwable throwable)
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.
throwable
- the throwable to inspect, may be nullpublic static boolean isNestedThrowable(Throwable throwable)
Checks whether this Throwable
class can store a cause.
This method does not check whether it actually does store a cause.
throwable
- the Throwable
to examine, may be nulltrue
if nested otherwise false
public static boolean isThrowableNested()
Checks if the Throwable class has a getCause
method.
This is true for JDK 1.4 and above.
public static Throwable getCause(Throwable throwable)
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, and
NestableException
.
The 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 a Throwable
.
If none of the above is found, returns null
.
throwable
- the throwable to introspect for a cause, may be nullThrowable
,
null
if none found or null throwable inputpublic static Throwable getCause(Throwable throwable, String[] methodNames)
Introspects the Throwable
to obtain the cause.
A null
set of method names means use the default set.
A null
in the set of method names will be ignored.
throwable
- the throwable to introspect for a cause, may be nullmethodNames
- the method names, null treated as default setThrowable
,
null
if none found or null throwable inputpublic static void copy(InputStream input, Writer output) throws IOException
InputStream
to chars on a
Writer
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
.
input
- the InputStream
to read fromoutput
- the Writer
to write toNullPointerException
- if the input or output is nullIOException
- if an I/O error occurspublic static File jarFile(Class sampleClass, boolean printError)
sampleClass
- printError
- if error should be printed when there is a problempublic static String stripLastSlashIfExists(String input)
input
- public static String stripFirstSlashIfExists(String input)
input
- public static String retrievePasswordFromStdin(boolean dontMask, String prompt)
dontMask
- prompt
- to print to userpublic static final char[] retrievePasswordFromStdin(InputStream in, String prompt) throws IOException
in
- stream to be used (e.g. System.in)prompt
- The prompt to display to the user.IOException
public static String stripStart(String str, String stripChars)
Strips any of a set of characters from the start of a String.
A null
input String returns null
.
An empty string ("") input returns the empty string.
If the stripChars String is null
, whitespace is
stripped as defined by Character.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 "
str
- the String to remove characters from, may be nullstripChars
- the characters to remove, null treated as whitespacenull
if null String input@Deprecated public static String stripEnd(String str, String stripChars)
Strips any of a set of characters from the end of a String.
A null
input String returns null
.
An empty string ("") input returns the empty string.
If the stripChars String is null
, whitespace is
stripped as defined by Character.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"
str
- the String to remove characters from, may be nullstripChars
- the characters to remove, null treated as whitespacenull
if null String inputpublic static String repeat(String str, int 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) = ""
str
- the String to repeat, may be nullrepeat
- number of times to repeat str, negative treated as zeronull
if null String inputpublic static String rightPad(String str, int size)
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"
str
- the String to pad out, may be nullsize
- the size to pad tonull
if null String inputpublic static String rightPad(String str, int size, char padChar)
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"
str
- the String to pad out, may be nullsize
- the size to pad topadChar
- the character to pad withnull
if null String inputpublic static String rightPad(String str, int size, String padStr)
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 "
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 spacenull
if null String inputpublic static String leftPad(String str, int size)
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"
str
- the String to pad out, may be nullsize
- the size to pad tonull
if null String inputpublic static String leftPad(String str, int size, char padChar)
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"
str
- the String to pad out, may be nullsize
- the size to pad topadChar
- the character to pad withnull
if null String inputpublic static String leftPad(String str, int size, String padStr)
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"
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 spacenull
if null String inputpublic static String substringBefore(String str, String separator)
Gets the substring before the first occurrence of a separator. The separator is not returned.
A null
string input will return null
.
An empty ("") string input will return the empty string.
A null
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"
str
- the String to get a substring from, may be nullseparator
- the String to search for, may be nullnull
if null String inputpublic static String substringAfter(String str, String separator)
Gets the substring after the first occurrence of a separator. The separator is not returned.
A null
string input will return null
.
An empty ("") string input will return the empty string.
A null
separator will return the empty string if the
input string is not null
.
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"
str
- the String to get a substring from, may be nullseparator
- the String to search for, may be nullnull
if null String inputpublic static String substringBeforeLast(String str, String separator)
Gets the substring before the last occurrence of a separator. The separator is not returned.
A null
string input will return null
.
An empty ("") string input will return the empty string.
An empty or null
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"
str
- the String to get a substring from, may be nullseparator
- the String to search for, may be nullnull
if null String inputpublic static String substringAfterLast(String str, String separator)
Gets the substring after the last occurrence of a separator. The separator is not returned.
A null
string input will return null
.
An empty ("") string input will return the empty string.
An empty or null
separator will return the empty string if
the input string is not null
.
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") = ""
str
- the String to get a substring from, may be nullseparator
- the String to search for, may be nullnull
if null String inputpublic static void waitForInput()
public static <T> T retrieveByProperties(Collection<T> collection, List<String> propertyNames, List<Object> propertyValues)
T
- collection
- propertyNames
- propertyValues
- public static <T> T retrieveByProperty(Collection<T> collection, String propertyName, Object propertyValue)
T
- collection
- propertyName
- propertyValue
- public static Stem getFirstParentStemOfName(String name)
name
- public static <T> List<T> retrieveListByProperties(Collection<T> collection, List<String> propertyNames, List<Object> propertyValues)
T
- collection
- propertyNames
- propertyValues
- public static <T> List<T> retrieveListByProperty(Collection<T> collection, String propertyName, Object propertyValue)
T
- collection
- propertyName
- propertyValue
- public static <T> T listPopOne(List<T> list)
T
- list
- is the container of objects to get the first of.public static <T> T setPopOne(Set<T> set)
T
- set
- is the container of objects to get the first of.public static <T> T collectionPopOne(Collection<T> collection, boolean exceptionIfMoreThanOne)
T
- collection
- is the container of objects to get the first of.exceptionIfMoreThanOne
- will throw exception if there is more than one item in listpublic static String xmlEscape(String input)
input
- is the XML to convertisEscape
- true to escape chars, false to unescapepublic static String xmlEscape(String input, boolean isEscape)
input
- is the XML to convertisEscape
- true to escape chars, false to unescapepublic static void xmlAttribute(Writer writer, String attributeName, String attributeValue)
writer
- attributeName
- attributeValue
- public static boolean substituteStrings(Map<String,String> stringSubstituteMap, Object object)
object
- stringSubstituteMap
- public static Set<String> stringFieldNames(Class<?> theClass)
theClass
- public static boolean appendIfNotBlank(StringBuilder result, Object theStringOrArrayOrList)
result
- to append to
add a prefix and suffix (if not null)theStringOrArrayOrList
- is a string, array, list, or set of stringspublic static String appendIfNotBlankString(String string, String separator, String suffix)
append a string to another string if both not blank, with separator. trim to empty everything
string
- separator
- suffix
- public static String appendPrefixIfStringNotBlank(String prefix, String separator, String string)
append a prefix to another string if both not blank. trim to empty everything i.e. appendPrefixIfStringNotBlank("[]", " - ", "a") returns [] - a i.e. appendPrefixIfStringNotBlank("", " - ", "a") returns a i.e. appendPrefixIfStringNotBlank("[]", " - ", "") returns "" i.e. appendPrefixIfStringNotBlank("", " - ", "") returns ""
prefix
- separator
- string
- public static boolean appendIfNotBlank(StringBuilder result, String prefix, Object theStringOrArrayOrList)
result
- to append toprefix
- theStringOrArrayOrList
- is a string, array, list, or set of stringspublic static boolean appendIfNotBlank(StringBuilder result, String prefix, Object theStringOrArrayOrList, String suffix)
result
- to append to, assumed to be not nullprefix
- theStringOrArrayOrList
- is a string, array, list, or set of stringssuffix
- public static boolean appendIfNotBlank(StringBuilder result, String prefix, String prefixIfNotBlank, Object theStringOrArrayOrList, String suffix)
result
- to append to, assumed to be not nullprefix
- prepend this prefix always (when a result not empty). Will be after the other prefixprefixIfNotBlank
- prepend this prefix if the result is not emptytheStringOrArrayOrList
- is a string, array, list, or set of stringssuffix
- public static boolean appendIfNotEmpty(StringBuilder result, Object theStringOrArrayOrList)
result
- to append to
add a prefix and suffix (if not null)theStringOrArrayOrList
- is a string, array, list, or set of stringspublic static boolean appendIfNotEmpty(StringBuilder result, String prefix, Object theStringOrArrayOrList)
result
- to append toprefix
- theStringOrArrayOrList
- is a string, array, list, or set of stringspublic static boolean appendIfNotEmpty(StringBuilder result, String prefix, Object theStringOrArrayOrList, String suffix)
result
- to append to, assumed to be not nullprefix
- theStringOrArrayOrList
- is a string, array, list, or set of stringssuffix
- public static boolean appendIfNotEmpty(StringBuilder result, String prefix, String prefixIfNotEmpty, Object theStringOrArrayOrList, String suffix)
result
- to append to, assumed to be not nullprefix
- prepend this prefix always (when a result not empty). Will be after the other prefixprefixIfNotEmpty
- prepend this prefix if the result is not emptytheStringOrArrayOrList
- is a string, array, list, or set of stringssuffix
- public static int indexOf(Object[] array, Object objectToFind)
Find the index of the given object in the array.
This method returns -1
if null
array input.
array
- the array to search through for the object, may be null
objectToFind
- the object to find, may be null
-1
if not found or null
array inputpublic static boolean contains(Object[] array, Object objectToFind)
Checks if the object is in the given array.
The method returns false
if a null
array is passed in.
array
- the array to search throughobjectToFind
- the object to findtrue
if the array contains the objectpublic static int indexOf(Object[] array, Object objectToFind, int startIndex)
Find the index of the given object in the array starting at the given index.
This method returns -1
if null
array input.
A negative startIndex is treated as zero. A startIndex larger than the array
length will return -1
.
array
- the array to search through for the object, may be null
objectToFind
- the object to find, may be null
startIndex
- the index to start searching at-1
if not found or null
array inputpublic static <T> T arrayPopOne(T[] array)
T
- array
- is the container of objects to get the first of.public static String dateToString(Date date)
date
- public static Date stringToDate(String dateString)
dateString
- public static Long getMaxLongValue(Long... values)
values
- public static Long getMinLongValue(Long... values)
values
- public static Map<String,String> propertiesThreadLocalOverrideMap(String propertiesFileName)
propertiesFileName
- public static Map<String,Object> typeCastStringStringMap(Map<String,Object> limitEnvVars)
limitEnvVars
- if processing limits, pass in a map of limits. The name is the
name of the variable, and the value is the value. Note, you can typecast the
values by putting a valid type in parens in front of the param name. e.g.
name: (integer)amount, value: 50 (will convert to long)
name: (decimal)amount, value: 50.3 (will convert to double)
name: (timestamp)amount, value: 2011/01/26 19:02:04 (will convert to date/timestamp)public static boolean ipOnNetwork(String ipString, String networkIpString, int mask)
ipString
- is the ip address to checknetworkIpString
- is the ip address of the networkmask
- is the length of the mask (0-32)public static boolean ipOnNetworks(String ipString, String networkIpStrings)
ipString
- is the ip address to checknetworkIpStrings
- are the ip addresses of the networks, e.g. 1.2.3.4/12, 2.3.4.5/24, 1.2.3.4public static int ipReadyForAnd(int ip, int maskLength)
ip
- intmaskLength
- intpublic static int ipInt(String ip)
ip
- Stringpublic static void methodsByNameHelper(Class<?> theClass, String methodName, Class<?> superclassToStopAt, boolean includeSuperclassToStopAt, boolean includeStaticMethods, Class<? extends Annotation> markerAnnotation, boolean includeAnnotation, Set<Method> methodSet)
theClass
- methodName
- superclassToStopAt
- includeSuperclassToStopAt
- includeStaticMethods
- markerAnnotation
- includeAnnotation
- methodSet
- public static Object callMethodWithMoreParams(Object instance, Class<?> theType, String methodName, Object[] params)
instance
- theType
- of object to call method onmethodName
- params
- public static Object changeToVersion(Object input, String newPackage)
input
- input objectnewPackage
- is the package where the other version of things arepublic static Object changeToVersionHelper(Object input, String newPackage, int timeToLive)
input
- input objectnewPackage
- is the package where the other version of things aretimeToLive
- avoid circular referencespublic static String tmpDir()
public static String tmpDir(boolean appendSlashIfNotThere)
appendSlashIfNotThere
- add a slash to end if not there alreadypublic static <T> List<T> listFromCollection(Collection<T> collection)
T
- collection
- public static ExecutorService retrieveExecutorService()
public static <T> GrouperFuture<T> executorServiceSubmit(ExecutorService executorService, Callable<T> callable)
executorService
- callable
- public static GrouperFuture executorServiceSubmit(ExecutorService executorService, GrouperCallable callable, boolean willRetry)
executorService
- callable
- willRetry
- public static String concat(String a, String b)
a
- b
- public static String concat(String a, String b, String c)
a
- b
- c
- public static String concat(String a, String b, String c, String d)
a
- b
- c
- d
- public static String concat(String a, String b, String c, String d, String e)
a
- b
- c
- d
- public static String stack()
public static <T extends GrouperId> Set<T> sortByIds(Collection<String> ids, Collection<T> grouperObjects)
T
- ids
- grouperObjects
- public static String getGrouperHome()
public static List<String> splitFileLines(String fileContents)
fileContents
- public static String escapeHtml(String input, boolean isEscape)
input
- is the XML to convertisEscape
- true to escape chars, false to unescapepublic static String escapeHtml(String input, boolean isEscape, boolean escapeSingleQuotes)
input
- is the XML to convertisEscape
- true to escape chars, false to unescapeescapeSingleQuotes
- true to escape single quotes toopublic static List<File> fileListRecursive(File parent)
parent
- public static List<File> fileListRecursiveDirs(File parent)
parent
- public static Set<String> fileDescendantDirsRelativePaths(File parentDir)
parentDir
- public static Set<String> fileDescendantRelativePaths(File parentDir)
parentDir
- public static void mapAddValue(Map<String,Object> map, String key, long numberToAdd)
map
- key
- numberToAdd
- longpublic static void mapAddValue(Map<String,Object> map, String key, int numberToAdd)
map
- key
- numberToAdd
- intpublic static String substituteExpressionLanguageTemplate(String script, Map<String,Object> variableMap, boolean allowStaticClasses, boolean silent, boolean lenient)
stringToParse
- variableMap
- allowStaticClasses
- if true allow static classes not registered with contextsilent
- if silent mode, swallow exceptions (warn), and dont warn when variable not foundlenient
- false if undefined variables should throw an exception. if lenient is true (default)
then undefined variables are nullpublic static void gshReturn(int returnCode)
returnCode
- public static void gshReturn()
public static boolean portAvailable(int port, String ipAddress)
port
- the port to check for availabilityipAddress
- public static boolean portAvailableWait(int port, String ipAddress, int seconds, boolean expectingListening)
port
- ipAddress
- seconds
- expectingListening
- public static boolean isWindows()
Copyright © 2016 Internet2. All rights reserved.