Class LangUtil

java.lang.Object
org.aspectj.util.LangUtil

public class LangUtil extends Object
  • Field Details

  • Constructor Details

    • LangUtil

      public LangUtil()
  • Method Details

    • getVmVersionString

      public static String getVmVersionString()
      Returns:
      the vm version (1.1, 1.2, 1.3, 1.4, etc)
    • getVmVersion

      public static double getVmVersion()
    • is1dot3VMOrGreater

      @Deprecated public static boolean is1dot3VMOrGreater()
      Deprecated.
    • is1dot4VMOrGreater

      @Deprecated public static boolean is1dot4VMOrGreater()
      Deprecated.
    • is1dot5VMOrGreater

      @Deprecated public static boolean is1dot5VMOrGreater()
      Deprecated.
    • is1dot6VMOrGreater

      @Deprecated public static boolean is1dot6VMOrGreater()
      Deprecated.
    • is1dot7VMOrGreater

      @Deprecated public static boolean is1dot7VMOrGreater()
      Deprecated.
    • is1dot8VMOrGreater

      public static boolean is1dot8VMOrGreater()
    • is9VMOrGreater

      public static boolean is9VMOrGreater()
    • is10VMOrGreater

      public static boolean is10VMOrGreater()
    • is11VMOrGreater

      public static boolean is11VMOrGreater()
    • is12VMOrGreater

      public static boolean is12VMOrGreater()
    • is13VMOrGreater

      public static boolean is13VMOrGreater()
    • is14VMOrGreater

      public static boolean is14VMOrGreater()
    • is15VMOrGreater

      public static boolean is15VMOrGreater()
    • is16VMOrGreater

      public static boolean is16VMOrGreater()
    • is17VMOrGreater

      public static boolean is17VMOrGreater()
    • is18VMOrGreater

      public static boolean is18VMOrGreater()
    • throwIaxIfNull

      public static final void throwIaxIfNull(Object o, String name)
      Shorthand for "if null, throw IllegalArgumentException"
      Throws:
      IllegalArgumentException - "null {name}" if o is null
    • throwIaxIfNotAssignable

      public static final void throwIaxIfNotAssignable(Object[] ra, Class<?> c, String name)
      Shorthand for "if not null or not assignable, throw IllegalArgumentException"
      Parameters:
      c - the Class to check - use null to ignore type check
      Throws:
      IllegalArgumentException - "null {name}" if o is null
    • throwIaxIfNotAssignable

      public static final void throwIaxIfNotAssignable(Object o, Class<?> c, String name)
      Shorthand for "if not null or not assignable, throw IllegalArgumentException"
      Throws:
      IllegalArgumentException - "null {name}" if o is null
    • throwIaxIfFalse

      public static final void throwIaxIfFalse(boolean test, String message)
      Shorthand for "if false, throw IllegalArgumentException"
      Throws:
      IllegalArgumentException - "{message}" if test is false
    • isEmpty

      public static boolean isEmpty(String s)
      Returns:
      ((null == s) || (0 == s.length()));
    • isEmpty

      public static boolean isEmpty(Object[] ra)
      Returns:
      ((null == ra) || (0 == ra.length))
    • isEmpty

      public static boolean isEmpty(byte[] ra)
      Returns:
      ((null == ra) || (0 == ra.length))
    • isEmpty

      public static boolean isEmpty(Collection<?> collection)
      Returns:
      ((null == collection) || (0 == collection.size()))
    • isEmpty

      public static boolean isEmpty(Map<?,​?> map)
      Returns:
      ((null == map) || (0 == map.size()))
    • split

      public static String[] split(String text)
      Splits text at whitespace.
      Parameters:
      text - String to split.
    • commaSplit

      public static List<String> commaSplit(String input)
      Splits input at commas, trimming any white space.
      Parameters:
      input - String to split.
      Returns:
      List of String of elements.
    • splitClasspath

      public static String[] splitClasspath(String classpath)
      Split string as classpath, delimited at File.pathSeparator. Entries are not trimmed, but empty entries are ignored.
      Parameters:
      classpath - the String to split - may be null or empty
      Returns:
      String[] of classpath entries
    • getBoolean

      public static boolean getBoolean(String propertyName, boolean defaultValue)
      Get System property as boolean, but use default value where the system property is not set.
      Returns:
      true if value is set to true, false otherwise
    • anySplit

      public static List<String> anySplit(String input, String delim)
      Splits input, removing delimiter and trimming any white space. Returns an empty collection if the input is null. If delimiter is null or empty or if the input contains no delimiters, the input itself is returned after trimming white space.
      Parameters:
      input - String to split.
      delim - String separators for input.
      Returns:
      List of String of elements.
    • strings

      public static List<String> strings(String text)
      Splits strings into a List using a StringTokenizer.
      Parameters:
      text - String to split.
    • safeList

      public static <T> List<T> safeList(List<T> list)
      Returns:
      a non-null unmodifiable List
    • copyStrings

      public static String[][] copyStrings(String[][] in)
      copy non-null two-dimensional String[][]
      See Also:
      extractOptions(java.lang.String[],java.lang.String[][])
    • extractOptions

      public static String[] extractOptions(String[] args, String[][] options)
      Extract options and arguments to input option list, returning remainder. The input options will be nullified if not found. e.g.,
       String[] options = new String[][] { new String[] { "-verbose" }, new String[] { "-classpath", null } };
       String[] args = extractOptions(args, options);
       boolean verbose = null != options[0][0];
       boolean classpath = options[1][1];
       
      Parameters:
      args - the String[] input options
      options - the String[][]options to find in the input args - not null for each String[] component the first subcomponent is the option itself, and there is one String subcomponent for each additional argument.
      Returns:
      String[] of args remaining after extracting options to extracted
    • safeCopy

      public static Object[] safeCopy(Object[] source, Object[] sink)
      Convert arrays safely. The number of elements in the result will be 1 smaller for each element that is null or not assignable. This will use sink if it has exactly the right size. The result will always have the same component type as sink.
      Returns:
      an array with the same component type as sink containing any assignable elements in source (in the same order).
      Throws:
      IllegalArgumentException - if either is null
    • unqualifiedClassName

      public static String unqualifiedClassName(Class<?> c)
      Returns:
      a String with the unqualified class name of the class (or "null")
    • unqualifiedClassName

      public static String unqualifiedClassName(Object o)
      Returns:
      a String with the unqualified class name of the object (or "null")
    • replace

      public static String replace(String in, String sought, String replace)
      inefficient way to replace all instances of sought with replace
    • toSizedString

      public static String toSizedString(long i, int width)
      render i right-justified with a given width less than about 40
    • renderExceptionShort

      public static String renderExceptionShort(Throwable e)
      Returns:
      "({UnqualifiedExceptionClass}) {message}"
    • renderException

      public static String renderException(Throwable t)
      Renders exception t after unwrapping and eliding any test packages.
      Parameters:
      t - Throwable to print.
      See Also:
      LangUtil.StringChecker.TEST_PACKAGES
    • renderException

      public static String renderException(Throwable t, boolean elide)
      Renders exception t, unwrapping, optionally eliding and limiting total number of lines.
      Parameters:
      t - Throwable to print.
      elide - true to limit to 100 lines and elide test packages
      See Also:
      LangUtil.StringChecker.TEST_PACKAGES
    • stackToString

      public static StringBuffer stackToString(Throwable throwable, boolean skipMessage)
      Dump message and stack to StringBuffer.
    • unwrapException

      public static Throwable unwrapException(Throwable t)
      Returns:
      Throwable input or tail of any wrapped exception chain
    • arrayAsList

      public static <T> List<T> arrayAsList(T[] array)
      Replacement for Arrays.asList(..) which gacks on null and returns a List in which remove is an unsupported operation.
      Parameters:
      array - the Object[] to convert (may be null)
      Returns:
      the List corresponding to array (never null)
    • makeClasspath

      public static String makeClasspath(String bootclasspath, String classpath, String classesDir, String outputJar)
      Gen classpath.
      Parameters:
      bootclasspath -
      classpath -
      classesDir -
      outputJar -
      Returns:
      String combining classpath elements
    • makeProcess

      public static LangUtil.ProcessController makeProcess(LangUtil.ProcessController controller, String classpath, String mainClass, String[] args)
      Create or initialize a process controller to run a process in another VM asynchronously.
      Parameters:
      controller - the ProcessController to initialize, if not null
      classpath -
      mainClass -
      args -
      Returns:
      initialized ProcessController
    • getJavaExecutable

      public static File getJavaExecutable()
      Find java executable File path from java.home system property.
      Returns:
      File associated with the java command, or null if not found.
    • sleepUntil

      public static boolean sleepUntil(long time)
      Sleep until a particular time.
      Parameters:
      time - the long time in milliseconds to sleep until
      Returns:
      true if delay succeeded, false if interrupted 100 times
    • getJrtFsFilePath

      public static String getJrtFsFilePath()
    • getJavaHome

      public static String getJavaHome()