Package jadex.commons
Class SUtil
- java.lang.Object
- 
- jadex.commons.SUtil
 
- 
 public class SUtil extends java.lang.ObjectThis class provides several useful static util methods.
- 
- 
Nested Class SummaryNested Classes Modifier and Type Class Description static classSUtil.AccessiblePrintStreamAn subclass of print stream to allow accessing the underlying stream.static interfaceSUtil.AndroidUtils
 - 
Field SummaryFields Modifier and Type Field Description protected static SUtil.AndroidUtilsandroidutilsCached AndroidUtilsprotected static java.io.FileappdirApplication directory, current working dir under normal Java, special with Android.static java.nio.charset.CharsetASCIIASCII charset.static java.lang.String[]BYTE_UNITSUnits for representing byte values.static java.text.DecimalFormatBYTEFORMATTER1The byte formatter for one predecimal digit.static java.text.DecimalFormatBYTEFORMATTER2The byte formatter for two predecimal digits.static java.text.DecimalFormatBYTEFORMATTER3The byte formatter for three predecimal digits.static intCONVERT_ALLConstant that indicates a conversion of all known characters.static intCONVERT_ALL_EXCEPT_AMPConstant that indicates a conversion of all known characters except &.static intCONVERT_NONEConstant that indicates a conversion of no characters.protected static java.util.concurrent.atomic.AtomicLongconvidcntThe counter for conversation ids.static longDEFTIMEOUTDefault timeout e.g.static longDEFTIMEOUT_DEFAULTstatic java.lang.Class[]EMPTY_CLASS_ARRAYAn empty class array.static java.util.EnumerationEMPTY_ENUMERATIONAn empty enumeration.static java.lang.Object[]EMPTY_OBJECT_ARRAYAn empty class array.static java.lang.String[]EMPTY_STRING_ARRAYAn empty string array.static java.util.RandomFAST_RANDOMAccess to non-secure fast random source.protected static LRU<java.lang.String,Tuple2<java.lang.Long,java.lang.String>>HASHESLRU for hashes.protected static java.util.Map<java.lang.String,java.lang.String>htmlwrapsMapping from single characters to encoded version for displaying on xml-style interfaces.protected static char[]ID_CHARSLookup table used for unique strings.static java.lang.String[]ISO8601UTCFALLBACKSISO8601 fallbacks assuming UTC.static java.lang.String[]ISO8601ZONEDFALLBACKSISO8601 fallbacks with included timezone.static java.nio.charset.CharsetISO8859_1ISO-8859-1 charset.static java.lang.StringJADEXDIRDirectory were jadex stores files generated during runtime, to be used for later runs.protected static LRU<java.lang.String,java.lang.Long>LASTMODSLRU for directory modification dates.static java.lang.StringLFLine separator.static java.lang.String[]macsCached for speed.protected static java.util.Map<java.lang.String,java.lang.String>MIMETYPESThe mime types.protected static java.util.List<java.net.NetworkInterface>NISThe cached network interfaces.protected static longNISTIMEThe time of the last caching of network interfaces.static java.lang.StringNULLA Null value.protected static java.io.OutputStreamOUT_FOR_SYSTEM_INprotected static IResultCommand<ResourceInfo,java.net.URLConnection>[]RESOURCEINFO_MAPPERSstatic java.lang.ThreadLocal<java.text.DateFormat>SDFSimple date format.static java.lang.ThreadLocal<java.text.DateFormat>SDF2static java.lang.ThreadLocal<java.text.DateFormat>SDF3static java.security.SecureRandomSECURE_RANDOMAccess to secure random source.protected static java.lang.StringsepsHolds the single characters.static java.nio.charset.CharsetUTF8UTF-8 charset.
 - 
Constructor SummaryConstructors Constructor Description SUtil()
 - 
Method SummaryAll Methods Static Methods Concrete Methods Modifier and Type Method Description static voidaddSystemErrListener(IChangeListener listener)Add a listener to System.err.static voidaddSystemOutListener(IChangeListener listener)Add a listener to System.out.static SUtil.AndroidUtilsandroidUtils()Get the AndroidUtils, if available.static booleanarrayContains(java.lang.Object array, java.lang.Object value)Check if an element is contained in an array.static booleanarrayEmptyOrNull(java.lang.Object array)Test if two arrays are content equal or both null.static booleanarrayEquals(java.lang.Object array1, java.lang.Object array2)Test if two arrays are content equal or both null.static intarrayHashCode(java.lang.Object a)Calculate a hash code for an array.static <T> java.util.List<T>arrayToList(java.lang.Object a)Transform an array to a vector.static <T> java.util.Set<T>arrayToSet(java.lang.Object a)Transform an array to a vector.static java.lang.StringarrayToString(java.lang.Object array)Get a string representation for an array.static byte[]base16Decode(java.lang.String data)Decodes a Base16-encoded String and returns the data.static java.lang.Stringbase16Encode(byte[] data)Encodes a set of data as a Base16 String (hex).static intbytesToInt(byte[] buffer)Convert bytes to an integer.static intbytesToInt(byte[] buffer, int offset)Convert bytes to an integer.static longbytesToLong(byte[] buffer)Convert bytes to a long.static longbytesToLong(byte[] buffer, int offset)Convert bytes to a long.static shortbytesToShort(byte[] buffer)Convert bytes to a short.static shortbytesToShort(byte[] buffer, int offset)Convert bytes to a short.static java.lang.StringbytesToString(long bytes)Get bytes as human readable string.static <T,E>
 java.util.List<java.util.Map<T,E>>calculateCartesianProduct(T[] names, E[] values)Calculate the cartesian product of parameters.static java.lang.StringcamelToSnakeCase(java.lang.String camel)Convert CamelCase to snake_case.static voidclose(java.io.Closeable closeable)Attempt to close a Closeable (e.g.static voidclose(java.net.Socket socket)Attempt to close a Socket (e.g.static java.util.Set<java.net.URL>collectClasspathURLs(java.lang.ClassLoader baseloader)Get other contained (but not directly managed) urls from parent classloaders.protected static voidcollectClasspathURLs(java.lang.ClassLoader classloader, java.util.Set<java.net.URL> set, java.util.Set<java.lang.String> jarnames)Collect all URLs belonging to a class loader.static voidcollectManifestURLs(java.net.URL url, java.util.Set<java.net.URL> set, java.util.Set<java.lang.String> jarnames)Collect all URLs as specified in a manifest.static intcompareTo(java.lang.String a, java.lang.String b)Compares two strings, ignoring case.static byte[]computeFileHash(java.lang.String filename)Compute a file hash.static byte[]computeFileHash(java.lang.String filename, java.lang.String algorithm)Compute a file hash.static booleancontainsDigit(java.lang.String s)Test if a string contains a digit.static <T> java.util.Map<java.lang.String,T>convertMapKeysToLowercase(java.util.Map<java.lang.String,T> map)Create a map copy with all keys in lowercase.static java.lang.StringconvertPathToPackage(java.lang.String path, java.net.URL[] urls)Find a package name from a path.static java.lang.StringconvertPathToRelative(java.lang.String absolute)Convert an absolute path to a relative path based on the current user directory.static java.lang.RuntimeExceptionconvertToRuntimeException(java.lang.Throwable e)Converts an exception to RuntimeException, returns original if already a RuntimeException.static java.lang.StringconvertURLToString(java.net.URL url)Convert an URL to a local file name.static <T> T[]copyArray(T[] original)Copy an array.static voidcopyFile(java.io.File source, java.io.File target)Copy a file.static intcopyStream(java.io.InputStream is, java.io.OutputStream os)Copy all data from input to output stream.static intcountOccurrences(java.lang.String string, char find)Count the occurrences of a char in a string.static <T> java.util.List<T>createArrayList(T[] values)Create an array list from values.static <K,T>
 java.util.Map<K,T>createHashMap(K[] keys, T[] values)Create a hash map from keys and values.static <T> java.util.Set<T>createHashSet(T[] values)Create a hash set from values.static java.lang.StringcreatePlainRandomId(java.lang.String name, int length)Create a random id with only alphanumeric chars.static java.util.regex.PatterncreateRegexFromGlob(java.lang.String glob)Create a regex from a normal bnf pattern.static java.lang.StringcreateUniqueId()Create a globally unique conversation id.static java.lang.StringcreateUniqueId(java.lang.String name)Create a globally unique conversation id.static java.lang.ObjectcutArrays(java.lang.Object a1, java.lang.Object a2)Cut two arrays.static java.util.DatedateFromIso8601(java.lang.String isostring)Attempts to create a date object in Java from an ISO 8601 string.static java.lang.StringdateToIso8601(java.util.Date date)Creates an ISO 8601-compliant string out of a java Date object.static booleandeleteDirectory(java.io.File dir)Delete a directory completely (including all subdirs and files).static intdiffuseStringHash(java.lang.String s)Generate a diffuse string hash.static voidensureNonblockingSecureRandom()Ensures SecureRandom use is nonblocking in all cases.static booleanequals(java.lang.Object val1, java.lang.Object val2)static java.lang.StringescapeLineBreaks(java.lang.String unescapedstring)Escapes all line breaks similar to Java string literals.static java.lang.StringescapeString(java.lang.String str)Escape a java string.static java.io.FilefindDirForProject(java.lang.String project)Find dir for given project.static <K,V>
 KfindKeyForValue(java.util.Map<K,V> map, V value)Helper to find first matching key (if any) for a value (identity check).static java.io.File[]findOutputDirs(java.lang.String projectroot, boolean includeTestClasses)Try to find the correct classpath root directories for current build tool chain.static java.lang.StringfirstToUpperCase(java.lang.String str)Convert a string to the same string with first letter in upper case.static java.lang.StringformatByteSize(long bytes)Converts a number of bytes into a human-friendly binary prefix unit string (kiB, MiB, GiB, ...).static java.io.FilegetAppDir()Gets the "application directory", normally the current working directory, except in Android.static intgetArrayDimension(java.lang.Object array)Get the array dimension.static java.lang.StringgetClassFileLocation(java.lang.Class<?> clazz)Get the file location for a class (either filename or jar url).static java.util.List<java.net.URL>getClasspathURLs(java.lang.ClassLoader classloader, boolean includebootpath)Get the current classpath as a list of URLsstatic java.lang.StringgetCodeSource(java.lang.String filename, java.lang.String pck)Get the source code base using a packagename and a filename.static java.io.FilegetDefaultDirectory()Get the home directory.static java.lang.StringgetDisplayName(java.io.File file)Get the display name (e.g.static java.lang.StringgetDurationHMS(long ms)Get a string representation for a duration.static java.lang.StringgetExceptionStacktrace(java.lang.Throwable e)Get the exception stacktrace.static java.io.FilegetFile(java.net.URL url)Get the file from an URL.static java.io.File[]getFiles(java.io.File file, boolean hiding)Get the files of a directory.static java.lang.StringgetGeoIPLocation()Determine the location of the local computer using some GeoIP web service.static java.io.FilegetHomeDirectory()Get the home directory.static java.net.InetAddressgetInet4Address()Get a IPV4 address of the local host.static java.net.InetAddressgetInet6Address()Get a IPV4 address of the local host.static java.net.InetAddressgetInetAddress()Get an address of the local host.static java.lang.StringgetJarName(java.lang.String filename)Get the name of a jar file without extension and version info.static longgetLastModified(java.io.File f)Recursively get the newest last modified of a file or directory tree.static longgetLastModified(java.io.File f, boolean nocache)Recursively get the newest last modified of a file or directory tree.static java.lang.StringgetMacAddress()Get the mac address.static java.lang.StringgetMacAddressAsString(byte[] mac)Convert a mac address to a string.static java.lang.String[]getMacAddresses()Get the mac address.static java.net.InetAddress[]getNetworkAddresses()Get the addresses to be used for transports.static java.util.List<java.net.NetworkInterface>getNetworkInterfaces()Get the network interfaces.static java.net.InetAddressgetNetworkIp(java.net.InetAddress addr, short prefixlen)Get the network ip for an internet address and the prefix length.static shortgetNetworkPrefixLength(java.net.InetAddress iadr)Get the network prefix length for IPV4 address 24=C, 16=B, 8=A classes.static java.io.OutputStreamgetOutForSystemIn()Get an output stream that is automatically fed into the new System.in, i.e.static java.lang.StringgetOutputDirsExpression(java.lang.String projectroot, boolean includeTestClasses)Try to find the correct classpath root directories for current build tool chain.static java.io.FilegetParentDirectory(java.io.File file)Get the parent directory.static java.lang.StringgetPlural(java.lang.String s)Get the plural of a word in singular.static intgetPrefixLength(java.io.File file)Get the prefix length of a file.static java.io.InputStreamgetResource(java.lang.String name, java.lang.ClassLoader classloader)Get an input stream for whatever provided.static java.io.InputStreamgetResource0(java.lang.String name, java.lang.ClassLoader classloader)Get an input stream for whatever provided.static ResourceInfogetResourceInfo0(java.lang.String name, java.lang.ClassLoader classloader)Get an input stream for whatever provided.static java.security.SecureRandomgetSecureRandom()Gets the global secure random.static java.lang.StringgetSingular(java.lang.String s)Get the singular of a word in plural.static java.lang.StringgetStackTrace(java.lang.Exception e)Get the exception stack trace as string.static java.lang.StringgetStackTraceString(java.lang.String topline, java.lang.StackTraceElement[] trace)Converts a stack trace array to a printable string.static java.lang.String[]getStringArray(java.lang.String key, java.util.Properties props)Get a string array of properties that are separated by commas.static java.lang.StringguessContentTypeByFilename(java.lang.String name)Guess the mime type by the file name.protected static voidhashDirectory(java.lang.String root, java.io.File dir, java.security.MessageDigest md)Get the hash code of a directory recursively.protected static voidhashStream(java.io.InputStream is, java.security.MessageDigest md)static java.lang.Stringhex(byte[] data)Convert a byte array to a string representation.static java.lang.Stringhex(byte[] data, boolean uppercase)Convert a byte array to a string representation.static java.lang.Stringhex(byte[] data, java.lang.String delim, int block)Convert a byte array to a string representation.static java.lang.Stringhex(byte[] data, java.lang.String delim, int block, boolean uppercase)Convert a byte array to a string representation.static java.lang.Stringhex(char ch)Convert char to hex vavlue.static intindexOfFilename(java.lang.String url, java.util.List<java.lang.String> urlstrings)Test if a file name is contained.static intinndexOfLastUpperCaseCharacter(java.lang.String str)Find index of last upper case letter.static java.lang.Stringintern(java.lang.String string)Optimized version of String.intern() that actually uses String.intern() but provides faster lookups if the String is already interned.protected static voidinternalMoveFile(java.io.File source, java.io.File target)Moves a file to a target location.static voidintIntoBytes(int val, byte[] buffer, int offset)Convert a long to bytes.static byte[]intToBytes(int val)Convert an integer to bytes.static booleanisFloppyDrive(java.io.File file)Check if a file represents a floppy.static booleanisGuiThread()Test if a call is running on a gui (e.g.static booleanisInRange(java.util.Date date, java.util.Date start, java.util.Date end)Test if the date is in the range.static booleanisJavaSourceFilename(java.lang.String filename)Test if a file is a Java source file.static booleanisUTF8(byte[] bytes)Test if starts with UTF-8 BOM.static booleanisWindows()Tests if the OS is Windows.static <T> java.lang.Object[]iteratorToArray(java.util.Iterator<T> it, java.lang.Class<T> clazz)Transform an iterator to an array.static <T> java.util.List<T>iteratorToList(java.util.Iterator<T> it)Transform an iterator to a list.static <T> java.util.List<T>iteratorToList(java.util.Iterator<T> it, java.util.List<T> ret)Transform an iterator to a list.static <T> T[]joinArbitraryArrays(java.lang.Object[] as)Joins any arrays of (possibly) different type.static java.lang.ObjectjoinArrays(java.lang.Object a1, java.lang.Object a2)Joins two arrays of the same type.static java.lang.StringloadBinary(java.lang.String file)Load a binary file as base 64 string, e.g.protected static LRU<java.lang.String,Tuple2<java.lang.Long,java.lang.String>>loadHashCache()Load the stored hashes.static intlog2(int num)Fast way to compute log2(x).static intlog2(long num)Fast way to compute log2(x).static voidlongIntoBytes(long val, byte[] buffer)Convert a long to bytes.static voidlongIntoBytes(long val, byte[] buffer, int offset)Convert a long to bytes.static byte[]longToBytes(long val)Convert a long to bytes.static voidmain(java.lang.String[] args)static java.lang.StringmakeConform(java.lang.String input)Convert an output to html/wml conform presentation.static java.lang.StringmakeConform(java.lang.String input, int flag)Convert an output to html/wml conform presentation.static java.lang.StringmakeEnglishConform(java.lang.String input)Convert an output readable in english.static byte[]mergeData(byte[]... data)Primitive encoding approach: Merges multiple byte arrays into a single one so it can be split later.static voidmoveFile(java.io.File source, java.io.File target)Moves a file to a target location.static <T> java.util.Collection<T>notNull(java.util.Collection<T> coll)Helper method to allow iterating over possibly null collections.static <T> java.util.List<T>notNull(java.util.List<T> list)Helper method to allow iterating over possibly null lists.static <K,E>
 java.util.Map<K,E>notNull(java.util.Map<K,E> map)Helper method to allow iterating over possibly null maps.static <T> java.util.Set<T>notNull(java.util.Set<T> set)Helper method to allow iterating over possibly null sets.static byte[]readFile(java.io.File file)Reads a file into memory (byte array).static java.lang.StringreadFile(java.lang.String filename)Read a file to string.static java.lang.StringreadFile(java.lang.String filename, java.lang.ClassLoader cl)Read a file to string.static voidreadStream(byte[] buf, int off, int len, java.io.InputStream is)Reads part of an input stream into a buffer.static voidreadStream(byte[] buf, int off, int len, java.io.InputStream is, long skip)Reads part of an input stream into a buffer.static voidreadStream(byte[] buf, java.io.InputStream is)Fills buffer from an input stream.static byte[]readStream(java.io.InputStream is)Reads an input stream into memory (byte array).static java.lang.String[]readStreamLines(java.io.InputStream is)Reads a (text) stream line-wise and returns lines as array.static java.lang.String[]readStreamLines(java.io.InputStream is, java.nio.charset.Charset encoding)Reads a (text) stream line-wise and returns lines as array.static java.lang.StringremoveBOM(java.lang.String text)Remove BOM from UTF text.static java.lang.StringremoveExtension(java.lang.String fn)Remove file extension.static voidremoveSystemErrListener(IChangeListener listener)Remove a listener from System.err.static voidremoveSystemOutListener(IChangeListener listener)Remove a listener from System.out.static java.net.URL[]removeSystemUrls(java.net.URL[] urls)Removes the (.jar) URLs contained in directories associated with the JVM.static voidreplace(java.lang.String source, java.lang.StringBuffer dest, java.lang.String old, java.lang.String newstring)Parse a source string replacing occurrences and storing the result in the given string buffer.static java.lang.Stringreplace(java.lang.String source, java.lang.String old, java.lang.String newstring)Parse a source string replacing occurrences and returning the result.static java.lang.StringreplaceLast(java.lang.String string, java.lang.String toreplace, java.lang.String replacement)Replace the last occurrence of a substring.static voidrethrowAsUnchecked(java.lang.Throwable e)Re-throws a throwable as a RuntimeException.static voidshortIntoBytes(int val, byte[] buffer, int offset)Convert a short into byte array.static byte[]shortToBytes(int val)Convert a short to bytes.static voidsleep(long millis)Sleep the current thread, ignore exceptions.static java.lang.StringsnakeToCamelCase(java.lang.String snake)Convert snake_case to CamelCase.static java.lang.String[]splitCommandline(java.lang.String line)Taken from ant.static java.util.List<byte[]>splitData(byte[] data)Primitive encoding approach: Splits a byte array that was encoded with mergeData().static java.util.List<byte[]>splitData(byte[] data, int offset, int length)Primitive encoding approach: Splits a byte array that was encoded with mergeData().static java.lang.StringstripTags(java.lang.String source)Strip tags (e.g.static java.lang.ObjectsubstractArrays(java.lang.Object a1, java.lang.Object a2)First array minus second array.protected static voidtestIntByteConversion()static java.lang.RuntimeExceptionthrowUnchecked(java.lang.Throwable t)Convert a throwable to an unchecked exception (i.e.static java.io.FiletoFile(java.net.URL url)Converts a file URL to a File, returns null if invalid.static java.io.FiletoFile0(java.net.URL url)Converts a file URL to a File, returns null if invalid.static java.net.URItoURI(java.lang.String transporturi)Convert stringified URI (as used in transports for some weird reason) to URI.static java.net.URItoURI(java.lang.String scheme, java.net.InetAddress address, int port)Convert a scheme, InetAdress and port to a valid URI or throw.static java.net.URItoURI(java.net.URL url)Convert a URL to a URI but ignore exceptionsstatic java.net.URItoURI0(java.net.URL url)Convert a URL to a URI but ignore exceptionsstatic java.net.URLtoURL(java.lang.Object url)Convert a file/string/url.static java.net.URLtoURL0(java.net.URI uri)Convert a URI to a URL but ignore exceptionsstatic java.net.URL[]toURLs(java.lang.Object[] urls)Convert a file/string/url array.static java.lang.StringtoUTF8(byte[] bytes)Returns a UTF8 byte array as string.static java.lang.StringunescapeLineBreaks(java.lang.String escapedstring)Unescapes all line breaks from strings similar to Java string literals.static voidunzip(java.util.zip.ZipFile zip, java.io.File dir)Unzip a file into a specific dir.static java.io.FileurlToFile(java.lang.String url)Convert an URL to a file.static java.lang.StringwrapText(java.lang.String text)Wrap a text at a given line length.static java.lang.StringwrapText(java.lang.String text, int wrap)Wrap a text at a given line length.static voidwriteDirectory(java.io.File dir, java.io.OutputStream out)Write a directory as jar to an output stream.protected static voidwriteDirectory(java.lang.String prefix, java.io.File dir, java.util.zip.ZipOutputStream zos, byte[] buf)Write a directory as jar to an output stream.static voidwriteFile(java.lang.String val, java.lang.String filename)Write a string to a file.static voidwriteFile(java.lang.String val, java.lang.String filename, java.lang.String charset)Write a string to a file.
 
- 
- 
- 
Field Detail- 
JADEXDIRpublic static final java.lang.String JADEXDIR Directory were jadex stores files generated during runtime, to be used for later runs.- See Also:
- Constant Field Values
 
 - 
LFpublic static final java.lang.String LF Line separator.
 - 
BYTE_UNITSpublic static final java.lang.String[] BYTE_UNITS Units for representing byte values.
 - 
BYTEFORMATTER1public static final java.text.DecimalFormat BYTEFORMATTER1 The byte formatter for one predecimal digit.
 - 
BYTEFORMATTER2public static final java.text.DecimalFormat BYTEFORMATTER2 The byte formatter for two predecimal digits.
 - 
BYTEFORMATTER3public static final java.text.DecimalFormat BYTEFORMATTER3 The byte formatter for three predecimal digits.
 - 
CONVERT_ALLpublic static final int CONVERT_ALL Constant that indicates a conversion of all known characters.- See Also:
- Constant Field Values
 
 - 
CONVERT_ALL_EXCEPT_AMPpublic static final int CONVERT_ALL_EXCEPT_AMP Constant that indicates a conversion of all known characters except &.- See Also:
- Constant Field Values
 
 - 
CONVERT_NONEpublic static final int CONVERT_NONE Constant that indicates a conversion of no characters.- See Also:
- Constant Field Values
 
 - 
NULLpublic static final java.lang.String NULL A Null value.- See Also:
- Constant Field Values
 
 - 
ASCIIpublic static final java.nio.charset.Charset ASCII ASCII charset.
 - 
UTF8public static final java.nio.charset.Charset UTF8 UTF-8 charset.
 - 
ISO8859_1public static final java.nio.charset.Charset ISO8859_1 ISO-8859-1 charset.
 - 
FAST_RANDOMpublic static final java.util.Random FAST_RANDOM Access to non-secure fast random source.
 - 
SECURE_RANDOMpublic static volatile java.security.SecureRandom SECURE_RANDOM Access to secure random source.
 - 
MIMETYPESprotected static volatile java.util.Map<java.lang.String,java.lang.String> MIMETYPES The mime types.
 - 
SDFpublic static final java.lang.ThreadLocal<java.text.DateFormat> SDF Simple date format.
 - 
SDF2public static final java.lang.ThreadLocal<java.text.DateFormat> SDF2 
 - 
SDF3public static final java.lang.ThreadLocal<java.text.DateFormat> SDF3 
 - 
ISO8601UTCFALLBACKSpublic static final java.lang.String[] ISO8601UTCFALLBACKS ISO8601 fallbacks assuming UTC.
 - 
ISO8601ZONEDFALLBACKSpublic static final java.lang.String[] ISO8601ZONEDFALLBACKS ISO8601 fallbacks with included timezone.
 - 
appdirprotected static volatile java.io.File appdir Application directory, current working dir under normal Java, special with Android.
 - 
htmlwrapsprotected static final java.util.Map<java.lang.String,java.lang.String> htmlwraps Mapping from single characters to encoded version for displaying on xml-style interfaces.
 - 
androidutilsprotected static volatile SUtil.AndroidUtils androidutils Cached AndroidUtils
 - 
sepsprotected static final java.lang.String seps Holds the single characters.
 - 
EMPTY_ENUMERATIONpublic static final java.util.Enumeration EMPTY_ENUMERATION An empty enumeration.
 - 
EMPTY_STRING_ARRAYpublic static final java.lang.String[] EMPTY_STRING_ARRAY An empty string array.
 - 
EMPTY_CLASS_ARRAYpublic static final java.lang.Class[] EMPTY_CLASS_ARRAY An empty class array.
 - 
EMPTY_OBJECT_ARRAYpublic static final java.lang.Object[] EMPTY_OBJECT_ARRAY An empty class array.
 - 
RESOURCEINFO_MAPPERSprotected static final IResultCommand<ResourceInfo,java.net.URLConnection>[] RESOURCEINFO_MAPPERS 
 - 
DEFTIMEOUTpublic static final long DEFTIMEOUT Default timeout e.g. from environment.
 - 
DEFTIMEOUT_DEFAULTpublic static final long DEFTIMEOUT_DEFAULT - See Also:
- Constant Field Values
 
 - 
convidcntprotected static java.util.concurrent.atomic.AtomicLong convidcnt The counter for conversation ids.
 - 
OUT_FOR_SYSTEM_INprotected static java.io.OutputStream OUT_FOR_SYSTEM_IN 
 - 
NISprotected static volatile java.util.List<java.net.NetworkInterface> NIS The cached network interfaces.
 - 
NISTIMEprotected static long NISTIME The time of the last caching of network interfaces.
 - 
macspublic static volatile java.lang.String[] macs Cached for speed.
 - 
HASHESprotected static LRU<java.lang.String,Tuple2<java.lang.Long,java.lang.String>> HASHES LRU for hashes.
 - 
LASTMODSprotected static LRU<java.lang.String,java.lang.Long> LASTMODS LRU for directory modification dates.
 - 
ID_CHARSprotected static final char[] ID_CHARS Lookup table used for unique strings.
 
- 
 - 
Method Detail- 
getSecureRandompublic static final java.security.SecureRandom getSecureRandom() Gets the global secure random.- Returns:
- The secure random.
 
 - 
getStringArraypublic static java.lang.String[] getStringArray(java.lang.String key, java.util.Properties props)Get a string array of properties that are separated by commas.- Parameters:
- key- The key.
- props- The properties.
- Returns:
- The strings.
 
 - 
joinArrayspublic static java.lang.Object joinArrays(java.lang.Object a1, java.lang.Object a2)Joins two arrays of the same type. Creates a new array containing the values of the first array followed by the values of the second.- Parameters:
- a1- The first array.
- a2- The second array.
- Returns:
- The joined array.
 
 - 
joinArbitraryArrayspublic static <T> T[] joinArbitraryArrays(java.lang.Object[] as) Joins any arrays of (possibly) different type. todo: Does not support basic types yet. Problem basic type array and object arrays cannot be mapped (except they are mapped).- Parameters:
- as- The array of arrays to join..
- Returns:
- The joined array.
 
 - 
cutArrayspublic static java.lang.Object cutArrays(java.lang.Object a1, java.lang.Object a2)Cut two arrays.- Parameters:
- a1- The first array.
- a2- The second array.
- Returns:
- The cutted array.
 
 - 
substractArrayspublic static java.lang.Object substractArrays(java.lang.Object a1, java.lang.Object a2)First array minus second array.- Parameters:
- a1- The first array.
- a2- The second array.
- Returns:
- The substracted array.
 
 - 
arrayToListpublic static <T> java.util.List<T> arrayToList(java.lang.Object a) Transform an array to a vector.- Parameters:
- a- The array.
- Returns:
- The vector for the array.
 
 - 
arrayToSetpublic static <T> java.util.Set<T> arrayToSet(java.lang.Object a) Transform an array to a vector.- Parameters:
- a- The array.
- Returns:
- The vector for the array.
 
 - 
iteratorToListpublic static <T> java.util.List<T> iteratorToList(java.util.Iterator<T> it) Transform an iterator to a list.
 - 
iteratorToListpublic static <T> java.util.List<T> iteratorToList(java.util.Iterator<T> it, java.util.List<T> ret)Transform an iterator to a list.
 - 
iteratorToArraypublic static <T> java.lang.Object[] iteratorToArray(java.util.Iterator<T> it, java.lang.Class<T> clazz)Transform an iterator to an array.
 - 
arrayContainspublic static boolean arrayContains(java.lang.Object array, java.lang.Object value)Check if an element is contained in an array.- Parameters:
- array- The array.
- value- The value.
 
 - 
getArrayDimensionpublic static int getArrayDimension(java.lang.Object array) Get the array dimension.- Parameters:
- array- The array.
- Returns:
- The number of dimensions.
 
 - 
equalspublic static boolean equals(java.lang.Object val1, java.lang.Object val2)
 - 
arrayEmptyOrNullpublic static final boolean arrayEmptyOrNull(java.lang.Object array) Test if two arrays are content equal or both null.- Parameters:
- array1- The first array.
- array2- The second array.
- Returns:
- True when the arrays are content equal.
 
 - 
arrayEqualspublic static boolean arrayEquals(java.lang.Object array1, java.lang.Object array2)Test if two arrays are content equal or both null.- Parameters:
- array1- The first array.
- array2- The second array.
- Returns:
- True when the arrays are content equal.
 
 - 
arrayHashCodepublic static int arrayHashCode(java.lang.Object a) Calculate a hash code for an array.
 - 
arrayToStringpublic static java.lang.String arrayToString(java.lang.Object array) Get a string representation for an array.- Parameters:
- array- The array.
- Returns:
- formatted string.
 
 - 
convertMapKeysToLowercasepublic static <T> java.util.Map<java.lang.String,T> convertMapKeysToLowercase(java.util.Map<java.lang.String,T> map) Create a map copy with all keys in lowercase.- Parameters:
- map- The original map.
- Returns:
- The converted map.
 
 - 
getSingularpublic static java.lang.String getSingular(java.lang.String s) Get the singular of a word in plural. Does NOT find all correct singular.- Parameters:
- s- The plural word.
- Returns:
- The singular of this word.
 
 - 
getPluralpublic static java.lang.String getPlural(java.lang.String s) Get the plural of a word in singular. Does NOT find all correct plurals.- Parameters:
- s- The word.
- Returns:
- The plural of this word.
 
 - 
compareTopublic static int compareTo(java.lang.String a, java.lang.String b)Compares two strings, ignoring case.- Parameters:
- a- The first string.
- b- The second string.
- Returns:
- a
 
 - 
isInRangepublic static boolean isInRange(java.util.Date date, java.util.Date start, java.util.Date end)Test if the date is in the range. Start or end may null and will so not be checked.- Parameters:
- date- The date.
- start- The start.
- end- The end.
- Returns:
- True, if date is in range.
 
 - 
removeExtensionpublic static java.lang.String removeExtension(java.lang.String fn) Remove file extension.- Parameters:
- fn- The filename..
- Returns:
- filename without extension.
 
 - 
wrapTextpublic static java.lang.String wrapText(java.lang.String text) Wrap a text at a given line length. Doesn't to word wrap, just inserts linebreaks every nth character. If the string already contains linebreaks, these are handled properly (extra linebreaks will only be inserted when needed).- Parameters:
- text- The text to wrap.
 
 - 
wrapTextpublic static java.lang.String wrapText(java.lang.String text, int wrap)Wrap a text at a given line length. Doesn't to word wrap, just inserts linebreaks every nth character. If the string already contains linebreaks, these are handled properly (extra linebreaks will only be inserted when needed).- Parameters:
- text- The text to wrap.
- wrap- The column width.
 
 - 
makeConformpublic static java.lang.String makeConform(java.lang.String input) Convert an output to html/wml conform presentation.- Parameters:
- input- The input string.
- Returns:
- The converted output string.
 
 - 
makeConformpublic static java.lang.String makeConform(java.lang.String input, int flag)Convert an output to html/wml conform presentation.- Parameters:
- input- The input string.
- flag- CONVERT_ALL, CONVERT_NONE, CONVERT_ALL_EXCEPT_AMP;
- Returns:
- The converted output string.
 
 - 
stripTagspublic static java.lang.String stripTags(java.lang.String source) Strip tags (e.g. html) from a string, leaving only the text content.
 - 
makeEnglishConformpublic static java.lang.String makeEnglishConform(java.lang.String input) Convert an output readable in english. Therefore remove all äs, ös, üs etc.- Parameters:
- input- The input string.
- Returns:
- The converted output string.
 
 - 
camelToSnakeCasepublic static java.lang.String camelToSnakeCase(java.lang.String camel) Convert CamelCase to snake_case.
 - 
snakeToCamelCasepublic static java.lang.String snakeToCamelCase(java.lang.String snake) Convert snake_case to CamelCase.
 - 
replacepublic static void replace(java.lang.String source, java.lang.StringBuffer dest, java.lang.String old, java.lang.String newstring)Parse a source string replacing occurrences and storing the result in the given string buffer. This is a fast alternative to String.replaceAll(), because it does not use regular expressions.- Parameters:
- source- The source string.
- dest- The destination string buffer.
- old- The string to replace.
- newstring- The string to use as replacement.
 
 - 
replacepublic static java.lang.String replace(java.lang.String source, java.lang.String old, java.lang.String newstring)Parse a source string replacing occurrences and returning the result. This is a fast alternative to String.replaceAll(), because it does not use regular expressions.- Parameters:
- source- The source string.
- old- The string to replace.
- newstring- The string to use as replacement.
 
 - 
getResourcepublic static java.io.InputStream getResource(java.lang.String name, java.lang.ClassLoader classloader) throws java.io.IOExceptionGet an input stream for whatever provided. 1. It is tried to load the resource as file. 2. It is tried to load the resource via the ClassLoader. 3. It is tried to load the resource as URL.- Parameters:
- name- The resource description.
- Returns:
- The input stream for the resource.
- Throws:
- java.io.IOException- when the resource was not found.
 
 - 
getResource0public static java.io.InputStream getResource0(java.lang.String name, java.lang.ClassLoader classloader)Get an input stream for whatever provided. 1. It is tried to load the resource as file. 2. It is tried to load the resource via the ClassLoader. 3. It is tried to load the resource as URL.- Parameters:
- name- The resource description.
- Returns:
- The input stream for the resource or null when the resource was not found.
 
 - 
getResourceInfo0public static ResourceInfo getResourceInfo0(java.lang.String name, java.lang.ClassLoader classloader) Get an input stream for whatever provided. 1. It is tried to load the resource as file. 2. It is tried to load the resource via the ClassLoader. 3. It is tried to load the resource as URL.- Parameters:
- name- The resource description.
- Returns:
- The info object for the resource or null when the resource was not found.
 
 - 
copyStreampublic static int copyStream(java.io.InputStream is, java.io.OutputStream os)Copy all data from input to output stream.
 - 
getDurationHMSpublic static java.lang.String getDurationHMS(long ms) Get a string representation for a duration.- Parameters:
- ms- The duration in ms.
- Returns:
- The string representation.
 
 - 
convertPathToPackagepublic static java.lang.String convertPathToPackage(java.lang.String path, java.net.URL[] urls)Find a package name from a path. Searches the most specific classpath and uses the rest of the pathname as package name.- Parameters:
- path- The directory.
- Returns:
- The package.
 
 - 
getClasspathURLspublic static java.util.List<java.net.URL> getClasspathURLs(java.lang.ClassLoader classloader, boolean includebootpath)Get the current classpath as a list of URLs
 - 
collectClasspathURLspublic static java.util.Set<java.net.URL> collectClasspathURLs(java.lang.ClassLoader baseloader) Get other contained (but not directly managed) urls from parent classloaders.- Returns:
- The set of urls.
 
 - 
collectClasspathURLsprotected static void collectClasspathURLs(java.lang.ClassLoader classloader, java.util.Set<java.net.URL> set, java.util.Set<java.lang.String> jarnames)Collect all URLs belonging to a class loader.
 - 
getJarNamepublic static java.lang.String getJarName(java.lang.String filename) Get the name of a jar file without extension and version info.
 - 
collectManifestURLspublic static void collectManifestURLs(java.net.URL url, java.util.Set<java.net.URL> set, java.util.Set<java.lang.String> jarnames)Collect all URLs as specified in a manifest.
 - 
calculateCartesianProductpublic static <T,E> java.util.List<java.util.Map<T,E>> calculateCartesianProduct(T[] names, E[] values)Calculate the cartesian product of parameters. Example: names = {"a", "b"}, values = {{"1", "2"}, {"3", "4"}} result = {{"a"="1", "b"="3"}, {"a"="2", "b"="3"}, {"a"="1", "b"="4"}, {"a=2", b="4"}}- Parameters:
- names- The names.
- values- The values (must be some form of collection, i.e. array, list, iterator etc.)
 
 - 
isJavaSourceFilenamepublic static boolean isJavaSourceFilename(java.lang.String filename) Test if a file is a Java source file.- Parameters:
- filename- The filename.
- Returns:
- True, if it is a Java source file.
 
 - 
createHashMappublic static <K,T> java.util.Map<K,T> createHashMap(K[] keys, T[] values)Create a hash map from keys and values.- Parameters:
- keys- The keys.
- values- The values.
- Returns:
- The map.
 
 - 
createHashSetpublic static <T> java.util.Set<T> createHashSet(T[] values) Create a hash set from values.- Parameters:
- values- The values.
- Returns:
- The map.
 
 - 
createArrayListpublic static <T> java.util.List<T> createArrayList(T[] values) Create an array list from values.- Parameters:
- values- The values.
- Returns:
- The map.
 
 - 
createUniqueIdpublic static java.lang.String createUniqueId() Create a globally unique conversation id.- Returns:
- The conversation id.
 
 - 
createUniqueIdpublic static java.lang.String createUniqueId(java.lang.String name) Create a globally unique conversation id.- Returns:
- The conversation id.
 
 - 
createPlainRandomIdpublic static java.lang.String createPlainRandomId(java.lang.String name, int length)Create a random id with only alphanumeric chars.- Returns:
- The id.
 
 - 
testIntByteConversionprotected static void testIntByteConversion() 
 - 
convertPathToRelativepublic static java.lang.String convertPathToRelative(java.lang.String absolute) Convert an absolute path to a relative path based on the current user directory.
 - 
toURLspublic static java.net.URL[] toURLs(java.lang.Object[] urls) Convert a file/string/url array.- Parameters:
- urls- The url strings.
- Returns:
- The urls.
 
 - 
toURLpublic static java.net.URL toURL(java.lang.Object url) Convert a file/string/url.
 - 
toURL0public static java.net.URL toURL0(java.net.URI uri) Convert a URI to a URL but ignore exceptions
 - 
toURI0public static java.net.URI toURI0(java.net.URL url) Convert a URL to a URI but ignore exceptions
 - 
toURIpublic static java.net.URI toURI(java.net.URL url) Convert a URL to a URI but ignore exceptions
 - 
toURIpublic static java.net.URI toURI(java.lang.String scheme, java.net.InetAddress address, int port)Convert a scheme, InetAdress and port to a valid URI or throw.- Parameters:
- scheme-
- address-
- port-
- Returns:
- URI
 
 - 
toURIpublic static java.net.URI toURI(java.lang.String transporturi) Convert stringified URI (as used in transports for some weird reason) to URI.- Parameters:
- transporturi- Transport-style URI (tcp-mtp://hostpart:port or tcp-mtp://[h:o:s:t%scope]:port for ipv6)
- Returns:
- URI
 
 - 
toFilepublic static final java.io.File toFile(java.net.URL url) Converts a file URL to a File, returns null if invalid.- Parameters:
- url- The URL.
- Returns:
- File or null if invalid.
 
 - 
toFile0public static final java.io.File toFile0(java.net.URL url) Converts a file URL to a File, returns null if invalid.- Parameters:
- url- The URL.
- Returns:
- File or null if invalid.
 
 - 
sleeppublic static final void sleep(long millis) Sleep the current thread, ignore exceptions.- Parameters:
- millis- Time to sleep in milliseconds
 
 - 
convertToRuntimeExceptionpublic static final java.lang.RuntimeException convertToRuntimeException(java.lang.Throwable e) Converts an exception to RuntimeException, returns original if already a RuntimeException.- Parameters:
- e- The throwable to be returned as RuntimeException
- Returns:
- RuntimeException.
 
 - 
rethrowAsUncheckedpublic static final void rethrowAsUnchecked(java.lang.Throwable e) Re-throws a throwable as a RuntimeException. If the throwable is already a RuntimeException, the exception itself is thrown, otherwise it is wrapped.- Parameters:
- e- The throwable to be thrown as RuntimeException
 
 - 
mainpublic static void main(java.lang.String[] args) 
 - 
formatByteSizepublic static java.lang.String formatByteSize(long bytes) Converts a number of bytes into a human-friendly binary prefix unit string (kiB, MiB, GiB, ...).- Parameters:
- bytes- Number of bytes.
 
 - 
bytesToShortpublic static short bytesToShort(byte[] buffer) Convert bytes to a short.
 - 
bytesToShortpublic static short bytesToShort(byte[] buffer, int offset)Convert bytes to a short.
 - 
shortToBytespublic static byte[] shortToBytes(int val) Convert a short to bytes.
 - 
shortIntoBytespublic static void shortIntoBytes(int val, byte[] buffer, int offset)Convert a short into byte array.
 - 
bytesToIntpublic static int bytesToInt(byte[] buffer) Convert bytes to an integer.
 - 
bytesToIntpublic static int bytesToInt(byte[] buffer, int offset)Convert bytes to an integer.
 - 
intToBytespublic static byte[] intToBytes(int val) Convert an integer to bytes.
 - 
intIntoBytespublic static void intIntoBytes(int val, byte[] buffer, int offset)Convert a long to bytes.
 - 
bytesToLongpublic static long bytesToLong(byte[] buffer) Convert bytes to a long.
 - 
bytesToLongpublic static long bytesToLong(byte[] buffer, int offset)Convert bytes to a long.
 - 
longToBytespublic static byte[] longToBytes(long val) Convert a long to bytes.
 - 
longIntoBytespublic static void longIntoBytes(long val, byte[] buffer)Convert a long to bytes.
 - 
longIntoBytespublic static void longIntoBytes(long val, byte[] buffer, int offset)Convert a long to bytes.
 - 
getNetworkIppublic static java.net.InetAddress getNetworkIp(java.net.InetAddress addr, short prefixlen)Get the network ip for an internet address and the prefix length. Example: ip: 134.100.33.22 / prefixlen: 24 (c class) -> 134.100.33.0- Parameters:
- addr- The internet address.
- prefixlen- The prefix length.
- Returns:
- The net address.
 
 - 
bytesToStringpublic static java.lang.String bytesToString(long bytes) Get bytes as human readable string.
 - 
getClassFileLocationpublic static java.lang.String getClassFileLocation(java.lang.Class<?> clazz) Get the file location for a class (either filename or jar url).
 - 
convertURLToStringpublic static java.lang.String convertURLToString(java.net.URL url) Convert an URL to a local file name.- Parameters:
- url- The url.
- Returns:
- The absolute path to the url resource.
 
 - 
indexOfFilenamepublic static int indexOfFilename(java.lang.String url, java.util.List<java.lang.String> urlstrings)Test if a file name is contained.
 - 
urlToFilepublic static java.io.File urlToFile(java.lang.String url) Convert an URL to a file.- Returns:
- null, if the URL is neither 'file:' nor 'jar:file:' URL and no path point to an existing file.
 
 - 
internpublic static final java.lang.String intern(java.lang.String string) Optimized version of String.intern() that actually uses String.intern() but provides faster lookups if the String is already interned.- Parameters:
- string- The String being interned.
- Returns:
- The interned String.
 
 - 
removeSystemUrlspublic static final java.net.URL[] removeSystemUrls(java.net.URL[] urls) Removes the (.jar) URLs contained in directories associated with the JVM.- Parameters:
- urls- The input URLs.
- Returns:
- URLs without the system path URLs.
 
 - 
dateToIso8601public static java.lang.String dateToIso8601(java.util.Date date) Creates an ISO 8601-compliant string out of a java Date object.- Parameters:
- date- The date object.
- Returns:
- ISO 8601-compliant string.
 
 - 
dateFromIso8601public static java.util.Date dateFromIso8601(java.lang.String isostring) Attempts to create a date object in Java from an ISO 8601 string.- Parameters:
- isostring- The ISO string, must contain enough data for the date object.
- Returns:
- Date object.
 
 - 
addSystemOutListenerpublic static void addSystemOutListener(IChangeListener listener) Add a listener to System.out.
 - 
removeSystemOutListenerpublic static void removeSystemOutListener(IChangeListener listener) Remove a listener from System.out.
 - 
addSystemErrListenerpublic static void addSystemErrListener(IChangeListener listener) Add a listener to System.err.
 - 
removeSystemErrListenerpublic static void removeSystemErrListener(IChangeListener listener) Remove a listener from System.err.
 - 
getOutForSystemInpublic static java.io.OutputStream getOutForSystemIn() throws java.io.IOExceptionGet an output stream that is automatically fed into the new System.in, i.e. this method replaces System.in and delivers an output stream to which can be written. Note that writing to the output stream may block when no one reads from system in (default buffer size is 1024 characters).- Throws:
- java.io.IOException
 
 - 
getInet4Addresspublic static java.net.InetAddress getInet4Address() Get a IPV4 address of the local host. Ignores loopback address and V6 addresses.- Returns:
- First found IPV4 address.
 
 - 
getInet6Addresspublic static java.net.InetAddress getInet6Address() Get a IPV4 address of the local host. Ignores loopback address and V4 addresses.- Returns:
- First found IPV4 address.
 
 - 
getInetAddresspublic static java.net.InetAddress getInetAddress() Get an address of the local host. Tries to get a IPV4 address and if not available tries to get a IPV6 address.- Returns:
- First found IPV4 or IPV6 address.
 
 - 
getNetworkPrefixLengthpublic static short getNetworkPrefixLength(java.net.InetAddress iadr) Get the network prefix length for IPV4 address 24=C, 16=B, 8=A classes. Returns -1 in case of V6 address.- Parameters:
- iadr- The address.
- Returns:
- The length of the prefix.
 
 - 
copyArraypublic static <T> T[] copyArray(T[] original) Copy an array.
 - 
getCodeSourcepublic static java.lang.String getCodeSource(java.lang.String filename, java.lang.String pck)Get the source code base using a packagename and a filename. Looks at the filename and subtracts the package name.- Parameters:
- filename- The filename.
- pck- The package name.
- Returns:
- The source base.
 
 - 
countOccurrencespublic static int countOccurrences(java.lang.String string, char find)Count the occurrences of a char in a string.- Parameters:
- string- The string.
- find- The char to find.
- Returns:
- The number of occurrences.
 
 - 
getNetworkInterfacespublic static java.util.List<java.net.NetworkInterface> getNetworkInterfaces() throws java.net.SocketExceptionGet the network interfaces. The result is cached for a short time period to speed things up.- Throws:
- java.net.SocketException
 
 - 
getNetworkAddressespublic static java.net.InetAddress[] getNetworkAddresses() throws java.net.SocketExceptionGet the addresses to be used for transports.- Throws:
- java.net.SocketException
 
 - 
unzippublic static void unzip(java.util.zip.ZipFile zip, java.io.File dir)Unzip a file into a specific dir.- Parameters:
- zip- The zip file.
- dir- The target dir.
 
 - 
deleteDirectorypublic static boolean deleteDirectory(java.io.File dir) Delete a directory completely (including all subdirs and files).- Parameters:
- dir- The dir to delete.
- Returns:
- True, if was successfully deleted.
 
 - 
getHomeDirectorypublic static java.io.File getHomeDirectory() Get the home directory.
 - 
getDefaultDirectorypublic static java.io.File getDefaultDirectory() Get the home directory.
 - 
getParentDirectorypublic static java.io.File getParentDirectory(java.io.File file) Get the parent directory.
 - 
getFilespublic static java.io.File[] getFiles(java.io.File file, boolean hiding)Get the files of a directory.
 - 
getPrefixLengthpublic static int getPrefixLength(java.io.File file) Get the prefix length of a file.
 - 
isFloppyDrivepublic static boolean isFloppyDrive(java.io.File file) Check if a file represents a floppy. Returns false on android.
 - 
getDisplayNamepublic static java.lang.String getDisplayName(java.io.File file) Get the display name (e.g. of a system drive). Returns null on android.
 - 
isGuiThreadpublic static boolean isGuiThread() Test if a call is running on a gui (e.g. Swing or Android UI) thread. Currently returns false on android.
 - 
escapeStringpublic static java.lang.String escapeString(java.lang.String str) Escape a java string.- Parameters:
- str- The string to escape.
- Returns:
- The escaped string.
 
 - 
mergeDatapublic static byte[] mergeData(byte[]... data) Primitive encoding approach: Merges multiple byte arrays into a single one so it can be split later.- Parameters:
- data- The input data.
- Returns:
- A merged byte array.
 
 - 
splitDatapublic static java.util.List<byte[]> splitData(byte[] data) Primitive encoding approach: Splits a byte array that was encoded with mergeData().- Parameters:
- data- The input data.
- Returns:
- A list of byte arrays representing the original set.
 
 - 
splitDatapublic static java.util.List<byte[]> splitData(byte[] data, int offset, int length)Primitive encoding approach: Splits a byte array that was encoded with mergeData().- Parameters:
- data- The input data.
- offset- Offset where the data is located.
- length- Length of the data, rest of data used if length < 0.
- Returns:
- A list of byte arrays representing the original set.
 
 - 
hexpublic static java.lang.String hex(char ch) Convert char to hex vavlue.
 - 
hexpublic static java.lang.String hex(byte[] data) Convert a byte array to a string representation.
 - 
hexpublic static java.lang.String hex(byte[] data, boolean uppercase)Convert a byte array to a string representation.
 - 
hexpublic static java.lang.String hex(byte[] data, java.lang.String delim, int block)Convert a byte array to a string representation.
 - 
hexpublic static java.lang.String hex(byte[] data, java.lang.String delim, int block, boolean uppercase)Convert a byte array to a string representation.
 - 
base16Encodepublic static java.lang.String base16Encode(byte[] data) Encodes a set of data as a Base16 String (hex).- Parameters:
- data- The data.
- Returns:
- Base16-encoded String.
 
 - 
base16Decodepublic static byte[] base16Decode(java.lang.String data) Decodes a Base16-encoded String and returns the data.- Parameters:
- data- The encoded data.
- Returns:
- The decoded data.
 
 - 
escapeLineBreakspublic static java.lang.String escapeLineBreaks(java.lang.String unescapedstring) Escapes all line breaks similar to Java string literals.- Parameters:
- unescapedstring- Unescaped input string.
- Returns:
- Escaped string.
 
 - 
unescapeLineBreakspublic static java.lang.String unescapeLineBreaks(java.lang.String escapedstring) Unescapes all line breaks from strings similar to Java string literals.- Parameters:
- escapedstring- Escaped input string.
- Returns:
- Unescaped string.
 
 - 
splitCommandlinepublic static java.lang.String[] splitCommandline(java.lang.String line) Taken from ant. Split a command line.- Parameters:
- line- The command line to process.
- Returns:
- The command line broken into strings. An empty or null toProcess parameter results in a zero sized array.
 
 - 
getFilepublic static java.io.File getFile(java.net.URL url) Get the file from an URL.- Parameters:
- url- The file URL.
- Returns:
- The file.
 
 - 
copyFilepublic static void copyFile(java.io.File source, java.io.File target) throws java.io.IOExceptionCopy a file.- Parameters:
- source- The source file.
- target- The target file or directory (will be deleted first).
- Throws:
- java.io.IOException
 
 - 
moveFilepublic static void moveFile(java.io.File source, java.io.File target) throws java.io.IOExceptionMoves a file to a target location.- Parameters:
- source- The source file.
- target- The target file location (will be deleted first, if it exists).
- Throws:
- java.io.IOException
 
 - 
internalMoveFileprotected static void internalMoveFile(java.io.File source, java.io.File target) throws java.io.IOExceptionMoves a file to a target location.- Parameters:
- source- The source file.
- target- The target file location (will be deleted first, if it exists).
- Throws:
- java.io.IOException
 
 - 
readFilepublic static byte[] readFile(java.io.File file) throws java.io.IOExceptionReads a file into memory (byte array). Note: This only works for files smaller than 2GiB.- Parameters:
- file- The file.
- Returns:
- Contents of the file.
- Throws:
- java.io.IOException- Exception on IO errors.
 
 - 
readStreampublic static byte[] readStream(java.io.InputStream is) throws java.io.IOExceptionReads an input stream into memory (byte array). Note: This only works for files smaller than 2GiB.- Parameters:
- is- The InputStream.
- Returns:
- Contents of the file.
- Throws:
- java.io.IOException- Exception on IO errors.
 
 - 
readStreampublic static void readStream(byte[] buf, java.io.InputStream is)Fills buffer from an input stream. Note: This only works for sizes smaller than 2GiB.- Parameters:
- buf- The buffer.
- is- The InputStream.
 
 - 
readStreampublic static void readStream(byte[] buf, int off, int len, java.io.InputStream is)Reads part of an input stream into a buffer. Note: This only works for sizes smaller than 2GiB.- Parameters:
- buf- The buffer.
- off- Offset for writing into the buffer.
- len- Number of bytes to read from stream, set to -1 to fill the rest of the buffer.
- is- The InputStream.
 
 - 
readStreampublic static void readStream(byte[] buf, int off, int len, java.io.InputStream is, long skip)Reads part of an input stream into a buffer. Note: This only works for sizes smaller than 2GiB.- Parameters:
- buf- The buffer.
- off- Offset for writing into the buffer.
- len- Number of bytes to read from stream, set to -1 to fill the rest of the buffer.
- is- The InputStream.
- skip- Skip this number of bytes from the stream before reading, skip<=0 for no skip.
 
 - 
readStreamLinespublic static java.lang.String[] readStreamLines(java.io.InputStream is) Reads a (text) stream line-wise and returns lines as array.- Parameters:
- is- InputStream.
- Returns:
- Array of lines.
 
 - 
readStreamLinespublic static java.lang.String[] readStreamLines(java.io.InputStream is, java.nio.charset.Charset encoding)Reads a (text) stream line-wise and returns lines as array.- Parameters:
- is- InputStream.
- encoding- Character encoding, defaults to UTF8 if null.
- Returns:
- Array of lines.
 
 - 
closepublic static void close(java.net.Socket socket) Attempt to close a Socket (e.g. on error recovery) ignoring any error. (compatibility for Java versions below 7 where Closeable exists but is not implemented by Socket because stupid)- Parameters:
- socket- The socket.
 
 - 
closepublic static void close(java.io.Closeable closeable) Attempt to close a Closeable (e.g. on error recovery) ignoring any error.- Parameters:
- closeable- The closeable.
 
 - 
getStackTracepublic static java.lang.String getStackTrace(java.lang.Exception e) Get the exception stack trace as string.- Parameters:
- e- The exception.
- Returns:
- The string.
 
 - 
log2public static int log2(int num) Fast way to compute log2(x).- Parameters:
- num- The number.
- Returns:
- The log2(x).
 
 - 
log2public static int log2(long num) Fast way to compute log2(x).- Parameters:
- num- The number.
- Returns:
- The log2(x).
 
 - 
computeFileHashpublic static byte[] computeFileHash(java.lang.String filename) Compute a file hash.- Parameters:
- filename- The filename.
- Returns:
- The hash.
 
 - 
computeFileHashpublic static byte[] computeFileHash(java.lang.String filename, java.lang.String algorithm)Compute a file hash.- Parameters:
- filename- The filename.
- algorithm- The hash algorithm.
- Returns:
- The hash.
 
 - 
firstToUpperCasepublic static java.lang.String firstToUpperCase(java.lang.String str) Convert a string to the same string with first letter in upper case.- Parameters:
- str- The string.
- Returns:
- The string with first letter in uppercase.
 
 - 
getMacAddresspublic static java.lang.String getMacAddress() Get the mac address.- Returns:
- The mac address.
 
 - 
getMacAddressespublic static java.lang.String[] getMacAddresses() Get the mac address.- Returns:
- The mac address.
 
 - 
createRegexFromGlobpublic static java.util.regex.Pattern createRegexFromGlob(java.lang.String glob) Create a regex from a normal bnf pattern.
 - 
readFilepublic static java.lang.String readFile(java.lang.String filename) Read a file to string.- Parameters:
- filename- The file name.
- Returns:
- The string.
 
 - 
readFilepublic static java.lang.String readFile(java.lang.String filename, java.lang.ClassLoader cl)Read a file to string.- Parameters:
- filename- The file name.
- Returns:
- The string.
 
 - 
writeFilepublic static void writeFile(java.lang.String val, java.lang.String filename)Write a string to a file.- Parameters:
- val- The string to write.
- filename- The file name.
 
 - 
writeFilepublic static void writeFile(java.lang.String val, java.lang.String filename, java.lang.String charset)Write a string to a file.- Parameters:
- val- The string to write.
- filename- The file name.
 
 - 
getAppDirpublic static java.io.File getAppDir() Gets the "application directory", normally the current working directory, except in Android.- Returns:
- Application directory.
 
 - 
androidUtilspublic static SUtil.AndroidUtils androidUtils() Get the AndroidUtils, if available.- Returns:
- AndroidUtils
 
 - 
loadBinarypublic static java.lang.String loadBinary(java.lang.String file) Load a binary file as base 64 string, e.g. for embedded html images.
 - 
removeBOMpublic static java.lang.String removeBOM(java.lang.String text) Remove BOM from UTF text.- Parameters:
- text- The text.
- Returns:
- The corrected string.
 
 - 
isUTF8public static boolean isUTF8(byte[] bytes) Test if starts with UTF-8 BOM.- Parameters:
- bytes- The text.
- Returns:
- Bytes without BOM.
 
 - 
toUTF8public static java.lang.String toUTF8(byte[] bytes) Returns a UTF8 byte array as string.- Parameters:
- bytes- The bytes.
- Returns:
- The string.
 
 - 
getExceptionStacktracepublic static java.lang.String getExceptionStacktrace(java.lang.Throwable e) Get the exception stacktrace.- Parameters:
- e- The exception.
- Returns:
- The exception stacktrace.
 
 - 
throwUncheckedpublic static java.lang.RuntimeException throwUnchecked(java.lang.Throwable t) throws java.lang.Error, java.lang.RuntimeExceptionConvert a throwable to an unchecked exception (i.e. error or runtime exception). Also unpacks InvocationTargeteException and ErrorException.- Parameters:
- t- The throwable.
- Returns:
- Dummy return value as exception will be thrown inside. Use as throw SUtil.throwUnchecked(t);to avoid compilation errors.
- Throws:
- java.lang.Error
- java.lang.RuntimeException
 
 - 
guessContentTypeByFilenamepublic static java.lang.String guessContentTypeByFilename(java.lang.String name) Guess the mime type by the file name.- Parameters:
- name- The filename
- Returns:
- The mime type.
 
 - 
containsDigitpublic static boolean containsDigit(java.lang.String s) Test if a string contains a digit.- Parameters:
- s- The string.
- Returns:
- True, if the string contains a digit.
 
 - 
loadHashCacheprotected static LRU<java.lang.String,Tuple2<java.lang.Long,java.lang.String>> loadHashCache() Load the stored hashes.
 - 
getLastModifiedpublic static long getLastModified(java.io.File f) Recursively get the newest last modified of a file or directory tree.
 - 
getLastModifiedpublic static long getLastModified(java.io.File f, boolean nocache)Recursively get the newest last modified of a file or directory tree.
 - 
hashDirectoryprotected static void hashDirectory(java.lang.String root, java.io.File dir, java.security.MessageDigest md) throws java.lang.ExceptionGet the hash code of a directory recursively.- Throws:
- java.lang.Exception
 
 - 
hashStreamprotected static void hashStream(java.io.InputStream is, java.security.MessageDigest md) throws java.lang.Exception- Throws:
- java.lang.Exception
 
 - 
writeDirectorypublic static void writeDirectory(java.io.File dir, java.io.OutputStream out)Write a directory as jar to an output stream.
 - 
writeDirectoryprotected static void writeDirectory(java.lang.String prefix, java.io.File dir, java.util.zip.ZipOutputStream zos, byte[] buf) throws java.lang.ExceptionWrite a directory as jar to an output stream.- Throws:
- java.lang.Exception
 
 - 
notNullpublic static <T> java.util.List<T> notNull(java.util.List<T> list) Helper method to allow iterating over possibly null lists.
 - 
notNullpublic static <T> java.util.Collection<T> notNull(java.util.Collection<T> coll) Helper method to allow iterating over possibly null collections.
 - 
notNullpublic static <T> java.util.Set<T> notNull(java.util.Set<T> set) Helper method to allow iterating over possibly null sets.
 - 
notNullpublic static <K,E> java.util.Map<K,E> notNull(java.util.Map<K,E> map) Helper method to allow iterating over possibly null maps.
 - 
findKeyForValuepublic static <K,V> K findKeyForValue(java.util.Map<K,V> map, V value)Helper to find first matching key (if any) for a value (identity check).
 - 
getStackTraceStringpublic static final java.lang.String getStackTraceString(java.lang.String topline, java.lang.StackTraceElement[] trace)Converts a stack trace array to a printable string.- Parameters:
- topline- The first line to be printed with info, if needed.
- trace- The stack trace.
- Returns:
- Printable string.
 
 - 
getOutputDirsExpressionpublic static java.lang.String getOutputDirsExpression(java.lang.String projectroot, boolean includeTestClasses)Try to find the correct classpath root directories for current build tool chain. Tries bin (e.g. eclipse), build/classes/main (gradle), target/classes (maven) and uses the directory with the newest file.- Returns:
- an expression string of the fpr 'new String[]{...}'.
 
 - 
findOutputDirspublic static java.io.File[] findOutputDirs(java.lang.String projectroot, boolean includeTestClasses)Try to find the correct classpath root directories for current build tool chain. Tries bin and bin/main (e.g. eclipse), build/classes/main (gradle), target/classes (maven) and uses the directory with the newest file.
 - 
findDirForProjectpublic static java.io.File findDirForProject(java.lang.String project) Find dir for given project. This allows to run under different environments with different working paths (e.g. intellij by default uses WP jadex/ while gradle uses WP jadex/jadex-integration-test- Parameters:
- project-
- Returns:
- File
 
 - 
diffuseStringHashpublic static final int diffuseStringHash(java.lang.String s) Generate a diffuse string hash.- Parameters:
- s- The string.
- Returns:
- The hash.
 
 - 
inndexOfLastUpperCaseCharacterpublic static int inndexOfLastUpperCaseCharacter(java.lang.String str) Find index of last upper case letter.- Parameters:
- str- The string.
- Returns:
- The index (or -1).
 
 - 
isWindowspublic static final boolean isWindows() Tests if the OS is Windows.- Returns:
- True, if Windows.
 
 - 
replaceLastpublic static java.lang.String replaceLast(java.lang.String string, java.lang.String toreplace, java.lang.String replacement)Replace the last occurrence of a substring.- Parameters:
- string- The string
- toreplace- The substring to replace.
- replacement- The new substring
- Returns:
- The new string.
 
 - 
getGeoIPLocationpublic static java.lang.String getGeoIPLocation() Determine the location of the local computer using some GeoIP web service.- Returns:
- The location as [
 
 - 
ensureNonblockingSecureRandompublic static void ensureNonblockingSecureRandom() Ensures SecureRandom use is nonblocking in all cases. Must be called before first new SecureRandom() use. Safe to call multiple times. Note: On certain systems like Linux, SecureRandom ends up using /dev/random as a entropy source for initialization. This has the severe disadvantage of blocking indefinitely once the entropy pool "runs out of entropy" (whatever that means). Calling this method prevents this undesirable behavior.
 - 
getMacAddressAsStringpublic static java.lang.String getMacAddressAsString(byte[] mac) Convert a mac address to a string.- Parameters:
- mac- The address.
- Returns:
- The string.
 
 
- 
 
-