com.sun.tools.classfile
Class ClassTranslator

java.lang.Object
  extended by com.sun.tools.classfile.ClassTranslator
All Implemented Interfaces:
ConstantPool.Visitor<ConstantPool.CPInfo,java.util.Map<java.lang.Object,java.lang.Object>>

public class ClassTranslator
extends java.lang.Object
implements ConstantPool.Visitor<ConstantPool.CPInfo,java.util.Map<java.lang.Object,java.lang.Object>>

Rewrites a class file using a map of translations.

This is NOT part of any API supported by Sun Microsystems. If you write code that depends on this, you do so at your own risk. This code and its internal interfaces are subject to change or deletion without notice.


Constructor Summary
ClassTranslator()
           
 
Method Summary
private static
<T> boolean
equal(T[] a1, T[] a2)
           
(package private)  Attribute translate(Attribute attribute, java.util.Map<java.lang.Object,java.lang.Object> translations)
           
 ClassFile translate(ClassFile cf, java.util.Map<java.lang.Object,java.lang.Object> translations)
          Create a new ClassFile from cf, such that for all entries k&nbsp;-\&gt;&nbsp;v in translations, each occurrence of k in cf will be replaced by v.
(package private)  ConstantPool.CPInfo translate(ConstantPool.CPInfo cpInfo, java.util.Map<java.lang.Object,java.lang.Object> translations)
           
(package private)  ConstantPool translate(ConstantPool cp, java.util.Map<java.lang.Object,java.lang.Object> translations)
           
(package private)  Field[] translate(Field[] fields, ConstantPool constant_pool, java.util.Map<java.lang.Object,java.lang.Object> translations)
           
(package private)  Field translate(Field field, ConstantPool constant_pool, java.util.Map<java.lang.Object,java.lang.Object> translations)
           
(package private)  Method translate(Method method, ConstantPool constant_pool, java.util.Map<java.lang.Object,java.lang.Object> translations)
           
(package private)  Attributes translateAttributes(Attributes attributes, ConstantPool constant_pool, java.util.Map<java.lang.Object,java.lang.Object> translations)
           
(package private)  Method[] translateMethods(Method[] methods, ConstantPool constant_pool, java.util.Map<java.lang.Object,java.lang.Object> translations)
           
 ConstantPool.CPInfo visitClass(ConstantPool.CONSTANT_Class_info info, java.util.Map<java.lang.Object,java.lang.Object> translations)
           
 ConstantPool.CPInfo visitDouble(ConstantPool.CONSTANT_Double_info info, java.util.Map<java.lang.Object,java.lang.Object> translations)
           
 ConstantPool.CPInfo visitFieldref(ConstantPool.CONSTANT_Fieldref_info info, java.util.Map<java.lang.Object,java.lang.Object> translations)
           
 ConstantPool.CPInfo visitFloat(ConstantPool.CONSTANT_Float_info info, java.util.Map<java.lang.Object,java.lang.Object> translations)
           
 ConstantPool.CPInfo visitInteger(ConstantPool.CONSTANT_Integer_info info, java.util.Map<java.lang.Object,java.lang.Object> translations)
           
 ConstantPool.CPInfo visitInterfaceMethodref(ConstantPool.CONSTANT_InterfaceMethodref_info info, java.util.Map<java.lang.Object,java.lang.Object> translations)
           
 ConstantPool.CPInfo visitLong(ConstantPool.CONSTANT_Long_info info, java.util.Map<java.lang.Object,java.lang.Object> translations)
           
 ConstantPool.CPInfo visitMethodref(ConstantPool.CONSTANT_Methodref_info info, java.util.Map<java.lang.Object,java.lang.Object> translations)
           
 ConstantPool.CPInfo visitNameAndType(ConstantPool.CONSTANT_NameAndType_info info, java.util.Map<java.lang.Object,java.lang.Object> translations)
           
 ConstantPool.CPInfo visitString(ConstantPool.CONSTANT_String_info info, java.util.Map<java.lang.Object,java.lang.Object> translations)
           
 ConstantPool.CPInfo visitUtf8(ConstantPool.CONSTANT_Utf8_info info, java.util.Map<java.lang.Object,java.lang.Object> translations)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ClassTranslator

public ClassTranslator()
Method Detail

translate

public ClassFile translate(ClassFile cf,
                           java.util.Map<java.lang.Object,java.lang.Object> translations)
Create a new ClassFile from cf, such that for all entries k&nbsp;-\&gt;&nbsp;v in translations, each occurrence of k in cf will be replaced by v. in

Parameters:
cf - the class file to be processed
translations - the set of translations to be applied
Returns:
a copy of with the values in translations substituted

translate

ConstantPool translate(ConstantPool cp,
                       java.util.Map<java.lang.Object,java.lang.Object> translations)

translate

ConstantPool.CPInfo translate(ConstantPool.CPInfo cpInfo,
                              java.util.Map<java.lang.Object,java.lang.Object> translations)

translate

Field[] translate(Field[] fields,
                  ConstantPool constant_pool,
                  java.util.Map<java.lang.Object,java.lang.Object> translations)

translate

Field translate(Field field,
                ConstantPool constant_pool,
                java.util.Map<java.lang.Object,java.lang.Object> translations)

translateMethods

Method[] translateMethods(Method[] methods,
                          ConstantPool constant_pool,
                          java.util.Map<java.lang.Object,java.lang.Object> translations)

translate

Method translate(Method method,
                 ConstantPool constant_pool,
                 java.util.Map<java.lang.Object,java.lang.Object> translations)

translateAttributes

Attributes translateAttributes(Attributes attributes,
                               ConstantPool constant_pool,
                               java.util.Map<java.lang.Object,java.lang.Object> translations)

translate

Attribute translate(Attribute attribute,
                    java.util.Map<java.lang.Object,java.lang.Object> translations)

equal

private static <T> boolean equal(T[] a1,
                                 T[] a2)

visitClass

public ConstantPool.CPInfo visitClass(ConstantPool.CONSTANT_Class_info info,
                                      java.util.Map<java.lang.Object,java.lang.Object> translations)
Specified by:
visitClass in interface ConstantPool.Visitor<ConstantPool.CPInfo,java.util.Map<java.lang.Object,java.lang.Object>>

visitDouble

public ConstantPool.CPInfo visitDouble(ConstantPool.CONSTANT_Double_info info,
                                       java.util.Map<java.lang.Object,java.lang.Object> translations)
Specified by:
visitDouble in interface ConstantPool.Visitor<ConstantPool.CPInfo,java.util.Map<java.lang.Object,java.lang.Object>>

visitFieldref

public ConstantPool.CPInfo visitFieldref(ConstantPool.CONSTANT_Fieldref_info info,
                                         java.util.Map<java.lang.Object,java.lang.Object> translations)
Specified by:
visitFieldref in interface ConstantPool.Visitor<ConstantPool.CPInfo,java.util.Map<java.lang.Object,java.lang.Object>>

visitFloat

public ConstantPool.CPInfo visitFloat(ConstantPool.CONSTANT_Float_info info,
                                      java.util.Map<java.lang.Object,java.lang.Object> translations)
Specified by:
visitFloat in interface ConstantPool.Visitor<ConstantPool.CPInfo,java.util.Map<java.lang.Object,java.lang.Object>>

visitInteger

public ConstantPool.CPInfo visitInteger(ConstantPool.CONSTANT_Integer_info info,
                                        java.util.Map<java.lang.Object,java.lang.Object> translations)
Specified by:
visitInteger in interface ConstantPool.Visitor<ConstantPool.CPInfo,java.util.Map<java.lang.Object,java.lang.Object>>

visitInterfaceMethodref

public ConstantPool.CPInfo visitInterfaceMethodref(ConstantPool.CONSTANT_InterfaceMethodref_info info,
                                                   java.util.Map<java.lang.Object,java.lang.Object> translations)
Specified by:
visitInterfaceMethodref in interface ConstantPool.Visitor<ConstantPool.CPInfo,java.util.Map<java.lang.Object,java.lang.Object>>

visitLong

public ConstantPool.CPInfo visitLong(ConstantPool.CONSTANT_Long_info info,
                                     java.util.Map<java.lang.Object,java.lang.Object> translations)
Specified by:
visitLong in interface ConstantPool.Visitor<ConstantPool.CPInfo,java.util.Map<java.lang.Object,java.lang.Object>>

visitNameAndType

public ConstantPool.CPInfo visitNameAndType(ConstantPool.CONSTANT_NameAndType_info info,
                                            java.util.Map<java.lang.Object,java.lang.Object> translations)
Specified by:
visitNameAndType in interface ConstantPool.Visitor<ConstantPool.CPInfo,java.util.Map<java.lang.Object,java.lang.Object>>

visitMethodref

public ConstantPool.CPInfo visitMethodref(ConstantPool.CONSTANT_Methodref_info info,
                                          java.util.Map<java.lang.Object,java.lang.Object> translations)
Specified by:
visitMethodref in interface ConstantPool.Visitor<ConstantPool.CPInfo,java.util.Map<java.lang.Object,java.lang.Object>>

visitString

public ConstantPool.CPInfo visitString(ConstantPool.CONSTANT_String_info info,
                                       java.util.Map<java.lang.Object,java.lang.Object> translations)
Specified by:
visitString in interface ConstantPool.Visitor<ConstantPool.CPInfo,java.util.Map<java.lang.Object,java.lang.Object>>

visitUtf8

public ConstantPool.CPInfo visitUtf8(ConstantPool.CONSTANT_Utf8_info info,
                                     java.util.Map<java.lang.Object,java.lang.Object> translations)
Specified by:
visitUtf8 in interface ConstantPool.Visitor<ConstantPool.CPInfo,java.util.Map<java.lang.Object,java.lang.Object>>