Class ClassName


  • public abstract class ClassName
    extends java.lang.Object
    Utility methods for working with class names.
    Author:
    David Hovemeyer
    • Constructor Summary

      Constructors 
      Constructor Description
      ClassName()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static void assertIsDotted​(java.lang.String className)  
      static void assertIsSlashed​(java.lang.String className)  
      static java.lang.String extractClassName​(java.lang.String originalName)
      Extract a slashed classname from a JVM classname or signature.
      static java.lang.String extractPackageName​(java.lang.String className)
      extract the package name from a dotted class name.
      static java.lang.String extractPackagePrefix​(java.lang.String packageName, int count)  
      static java.lang.String extractSimpleName​(java.lang.String className)  
      static java.lang.String fromFieldSignature​(java.lang.String signature)
      Converts from signature to slashed class name (e.g., from Ljava/lang/String; to java/lang/String).
      static java.lang.String getPrimitiveType​(java.lang.String cls)  
      static boolean isAnonymous​(java.lang.String className)
      Does a class name appear to designate an anonymous class? Only the name is analyzed.
      static boolean isLocalOrAnonymous​(java.lang.String className)
      Does a class name appear to designate an anonymous or local (defined inside method) class? Only the name is analyzed.
      static boolean isMathClass​(java.lang.String className)  
      static boolean isValidClassName​(java.lang.String className)
      Return whether or not the given class name is valid.
      static boolean matchedPrefixes​(java.lang.String[] classSearchStrings, java.lang.String className)  
      static java.lang.String toDottedClassName​(java.lang.String className)
      Convert class name to dotted format.
      static java.lang.String toSignature​(java.lang.String className)  
      static java.lang.String toSlashedClassName​(java.lang.Class<?> class1)  
      static java.lang.String toSlashedClassName​(java.lang.String className)
      Convert class name to slashed format.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ClassName

        public ClassName()
    • Method Detail

      • isMathClass

        public static boolean isMathClass​(@SlashedClassName
                                          java.lang.String className)
      • assertIsDotted

        public static void assertIsDotted​(@DottedClassName
                                          java.lang.String className)
      • assertIsSlashed

        public static void assertIsSlashed​(@SlashedClassName
                                           java.lang.String className)
      • toSignature

        public static java.lang.String toSignature​(@SlashedClassName
                                                   java.lang.String className)
      • getPrimitiveType

        @CheckForNull
        public static java.lang.String getPrimitiveType​(@SlashedClassName
                                                        java.lang.String cls)
      • fromFieldSignature

        @CheckForNull
        @SlashedClassName
        public static java.lang.String fromFieldSignature​(java.lang.String signature)
        Converts from signature to slashed class name (e.g., from Ljava/lang/String; to java/lang/String). Returns null if it is the signature for an array or primitive type.
      • toSlashedClassName

        @SlashedClassName
        public static java.lang.String toSlashedClassName​(@SlashedClassName(when=UNKNOWN)
                                                          java.lang.String className)
        Convert class name to slashed format. If the class name is already in slashed format, it is returned unmodified.
        Parameters:
        className - a class name
        Returns:
        the same class name in slashed format
      • toDottedClassName

        @DottedClassName
        public static java.lang.String toDottedClassName​(@SlashedClassName(when=UNKNOWN)
                                                         java.lang.String className)
        Convert class name to dotted format. If the class name is already in dotted format, it is returned unmodified.
        Parameters:
        className - a class name
        Returns:
        the same class name in dotted format
      • extractPackageName

        @DottedClassName
        public static java.lang.String extractPackageName​(@DottedClassName
                                                          java.lang.String className)
        extract the package name from a dotted class name. Package names are always in dotted format.
        Parameters:
        className - a dotted class name
        Returns:
        the name of the package containing the class
      • extractSimpleName

        public static java.lang.String extractSimpleName​(@DottedClassName
                                                         java.lang.String className)
      • isValidClassName

        public static boolean isValidClassName​(java.lang.String className)
        Return whether or not the given class name is valid.
        Parameters:
        className - a possible class name
        Returns:
        true if it's a valid class name, false otherwise
      • isLocalOrAnonymous

        public static boolean isLocalOrAnonymous​(java.lang.String className)
        Does a class name appear to designate an anonymous or local (defined inside method) class? Only the name is analyzed. No classes are loaded or looked up.
        Parameters:
        className - class name, slashed or dotted, fully qualified or unqualified
        Returns:
        true if className is the name of an anonymous or local class
      • isAnonymous

        public static boolean isAnonymous​(java.lang.String className)
        Does a class name appear to designate an anonymous class? Only the name is analyzed. No classes are loaded or looked up.
        Parameters:
        className - class name, slashed or dotted, fully qualified or unqualified
        Returns:
        true if className is the name of an anonymous class
      • extractClassName

        @SlashedClassName
        public static java.lang.String extractClassName​(java.lang.String originalName)
        Extract a slashed classname from a JVM classname or signature.
        Parameters:
        originalName - JVM classname or signature
        Returns:
        a slashed classname
      • extractPackagePrefix

        public static java.lang.String extractPackagePrefix​(java.lang.String packageName,
                                                            int count)
      • matchedPrefixes

        public static boolean matchedPrefixes​(java.lang.String[] classSearchStrings,
                                              @DottedClassName
                                              java.lang.String className)
      • toSlashedClassName

        @SlashedClassName
        public static java.lang.String toSlashedClassName​(java.lang.Class<?> class1)