Package serp.bytecode

Class NameCache

java.lang.Object
serp.bytecode.NameCache

public class NameCache extends Object
Caching and conversion of names in both internal and external form.
  • Field Details

    • _codes

      static final Object[][] _codes
    • _internal

      private final Map _internal
    • _internalDescriptor

      private final Map _internalDescriptor
    • _external

      private final Map _external
    • _externalHuman

      private final Map _externalHuman
  • Constructor Details

    • NameCache

      public NameCache()
  • Method Details

    • getInternalForm

      public String getInternalForm(String className, boolean descriptor)
      Converts the given class name to its internal form.
      Parameters:
      className - the name to convert
      descriptor - true if the name is to be used for a descriptor section -- the difference seems to be that for descriptors, non-primitives are prefixed with 'L' and ended with ';'
    • getInternalFormInternal

      private String getInternalFormInternal(String cls, boolean descriptor)
      See Also:
    • getExternalForm

      public String getExternalForm(String internalName, boolean humanReadable)
      Given the internal name of the class, return the 'normal' java name.
      Parameters:
      internalName - the internal name being used
      humanReadable - if the returned name should be in human-readable form, rather than a form suitable for a Class.forName(java.lang.String) call -- the difference lies in the handling of arrays
    • getExternalFormInternal

      private String getExternalFormInternal(String intern, boolean humanReadable)
      See Also:
    • getDescriptor

      public String getDescriptor(String returnType, String[] paramTypes)
      Construct a method descriptor from the given return and parameter types, which will be converted to internal form.
    • getDescriptorReturnName

      public String getDescriptorReturnName(String descriptor)
      Return the return type, in internal form, for the given method descriptor string.
    • getDescriptorParamNames

      public String[] getDescriptorParamNames(String descriptor)
      Return the parameter types, in internal form, for the given method descriptor string.
    • getComponentName

      public String getComponentName(String name)
      Return the component type name for the given array type, or null if the given string does not represent an array type name. The name given should be in proper Class.forName(java.lang.String) form.
    • clear

      public void clear()
      Clear the cache.