Class TypeHelper


  • public class TypeHelper
    extends java.lang.Object
    Helpoer class providing static methods for manipulating type and class names, field and method descriptor names etc
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static java.lang.String[] externalNames
      list of typenames in external form corresponding to entries ni previous list
      private static java.lang.String[] internalNames
      list of well known typenames as written in Java code
    • Constructor Summary

      Constructors 
      Constructor Description
      TypeHelper()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static int dimCount​(java.lang.String type)
      idenitfy the number of array dimensions encoded in the supplied type
      static boolean equalDescriptors​(java.lang.String desc1, java.lang.String desc2)  
      static java.lang.String externalizeClass​(java.lang.String className)
      convert a classname from canonical form to the form used to represent it externally i.e.
      static java.lang.String externalizeDescriptor​(java.lang.String desc)
      convert a method descriptor from canonical form to the form used to represent it externally
      static java.lang.String externalizeType​(java.lang.String typeName)
      convert a type name from canonical form to the form used to represent it externally i.e.
      static java.lang.String internalizeClass​(java.lang.String className)
      convert a classname from external form to canonical form.
      static java.lang.String internalizeClass​(java.lang.String className, boolean arrayBaseOnly)
      convert a classname from external form to canonical form.
      static java.lang.String internalizeDescriptor​(java.lang.String desc)
      convert a method descriptor from the form used to represent it externally to canonical form
      static java.lang.String parseMethodDescriptor​(java.lang.String targetMethod)
      split off the signature following the method name and return it
      static java.lang.String parseMethodName​(java.lang.String targetMethod)
      split off the method name preceding the signature and return it
      • Methods inherited from class java.lang.Object

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

      • internalNames

        private static final java.lang.String[] internalNames
        list of well known typenames as written in Java code
      • externalNames

        private static final java.lang.String[] externalNames
        list of typenames in external form corresponding to entries ni previous list
    • Constructor Detail

      • TypeHelper

        public TypeHelper()
    • Method Detail

      • equalDescriptors

        public static boolean equalDescriptors​(java.lang.String desc1,
                                               java.lang.String desc2)
      • externalizeClass

        public static java.lang.String externalizeClass​(java.lang.String className)
        convert a classname from canonical form to the form used to represent it externally i.e. replace all dots with slashes
        Parameters:
        className - the canonical name
        Returns:
        the external name
      • internalizeClass

        public static java.lang.String internalizeClass​(java.lang.String className)
        convert a classname from external form to canonical form. equivalent to calling internalizeClass(className, false).
        Parameters:
        className - the external name
        Returns:
        the canonical name
      • internalizeClass

        public static java.lang.String internalizeClass​(java.lang.String className,
                                                        boolean arrayBaseOnly)
        convert a classname from external form to canonical form. equivalent to calling internalizeClass(className, false). i.e. replace all slashes with dots, replace each leading square left brace with a corresponding trailing square brace pair and remove any L and colon characters bracketing the base type name. if arrayBaseOnly is true then do not append trailing brace pairs
        Parameters:
        className - the external name
        arrayBaseOnly - omit trailing brace pairs when this is true
        Returns:
        the canonical name
      • externalizeType

        public static java.lang.String externalizeType​(java.lang.String typeName)
        convert a type name from canonical form to the form used to represent it externally i.e. replace primitive type names by the appropriate single letter types, class names by the externalized class name bracketed by 'L' and ';' and array names by the base type name preceded by '['.
        Parameters:
        typeName - the type name
        Returns:
        the external name
      • externalizeDescriptor

        public static java.lang.String externalizeDescriptor​(java.lang.String desc)
        convert a method descriptor from canonical form to the form used to represent it externally
        Parameters:
        desc - the method descriptor which must be trimmed of any surrounding white space
        Returns:
        an externalised form for the descriptor
      • internalizeDescriptor

        public static java.lang.String internalizeDescriptor​(java.lang.String desc)
        convert a method descriptor from the form used to represent it externally to canonical form
        Parameters:
        desc - the method descriptor which must be trimmed of any surrounding white space and start with "(". it must end either with ")" or with ") " followed by an exernalized return type
        Returns:
        an internalised form for the descriptor, possibly followed by a space and externalized return type
      • parseMethodName

        public static java.lang.String parseMethodName​(java.lang.String targetMethod)
        split off the method name preceding the signature and return it
        Parameters:
        targetMethod - - the unqualified method name, possibly including signature
        Returns:
        the method name
      • parseMethodDescriptor

        public static java.lang.String parseMethodDescriptor​(java.lang.String targetMethod)
        split off the signature following the method name and return it
        Parameters:
        targetMethod - - the unqualified method name, possibly including signature
        Returns:
        the signature
      • dimCount

        public static int dimCount​(java.lang.String type)
        idenitfy the number of array dimensions encoded in the supplied type
        Parameters:
        type - a type in external format
        Returns:
        the number of array dimensions encoded in the supplied type