serp.bytecode
Class NameCache

java.lang.Object
  extended by serp.bytecode.NameCache

public class NameCache
extends Object

Caching and conversion of names in both internal and external form.

Author:
Abe White

Constructor Summary
NameCache()
           
 
Method Summary
 void clear()
          Clear the cache.
 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.
 String getDescriptor(String returnType, String[] paramTypes)
          Construct a method descriptor from the given return and parameter types, which will be converted to internal form.
 String[] getDescriptorParamNames(String descriptor)
          Return the parameter types, in internal form, for the given method descriptor string.
 String getDescriptorReturnName(String descriptor)
          Return the return type, in internal form, for the given method descriptor string.
 String getExternalForm(String internalName, boolean humanReadable)
          Given the internal name of the class, return the 'normal' java name.
 String getInternalForm(String className, boolean descriptor)
          Converts the given class name to its internal form.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NameCache

public NameCache()
Method Detail

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 ';'

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

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.



Copyright © 2002-2007. All Rights Reserved.