Package org.eclipse.mat.hprof
Class ExportHprof.Remap
- java.lang.Object
-
- org.eclipse.mat.hprof.ExportHprof.Remap
-
- Enclosing class:
- ExportHprof
public static class ExportHprof.Remap extends java.lang.ObjectRemaps class names. Separate class to isolate the generation of names from the actual contents of the snapshot.
-
-
Constructor Summary
Constructors Constructor Description Remap(java.util.regex.Pattern skipPattern, java.util.regex.Pattern avoidPattern, boolean matchFields, boolean undo)Create a remapper
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanisRemapped(java.lang.String cn)Is the class name one which should have a new name invented?voidloadMapping(java.io.File mapFile, boolean undo)Load the existing mapping table from a mapping properties file.java.lang.StringmapClass(java.lang.String cn)Return the renamed version of a classjava.lang.StringmapField(java.lang.String cn)Return the renamed version of a simple field/methodjava.lang.StringmapSignature(java.lang.String sig)Return the renamed version of a method/type signaturejava.lang.StringrenameClassName(java.lang.String classname)Renames a class.java.lang.StringrenameFileName(java.lang.String classname, java.lang.String filename)Rename a file name based on a class name.java.lang.StringrenameMethodName(java.lang.String className, java.lang.String method, boolean upper)Generate a new method name.java.lang.StringrenameSignature(java.lang.String signature)Rename a method signature.voidsaveMapping(java.io.File mapFile, boolean undo, java.lang.String comments)
-
-
-
Constructor Detail
-
Remap
public Remap(java.util.regex.Pattern skipPattern, java.util.regex.Pattern avoidPattern, boolean matchFields, boolean undo)Create a remapper- Parameters:
skipPattern- Remap names unless they match thisavoidPattern- Avoid remapping to names which match thismatchFields- TODOundo- Just use existing remappings
-
-
Method Detail
-
loadMapping
public void loadMapping(java.io.File mapFile, boolean undo) throws java.io.IOExceptionLoad the existing mapping table from a mapping properties file. Properties file format: original.package.Classname=new.package.Classname- Parameters:
mapFile- the Java format properties fileundo- whether to reverse the mappings contained in the file- Throws:
java.io.IOException
-
saveMapping
public void saveMapping(java.io.File mapFile, boolean undo, java.lang.String comments) throws java.io.IOException- Throws:
java.io.IOException
-
isRemapped
public boolean isRemapped(java.lang.String cn)
Is the class name one which should have a new name invented?- Parameters:
cn-- Returns:
- true if the class name is to be changed
-
mapClass
public java.lang.String mapClass(java.lang.String cn)
Return the renamed version of a class- Parameters:
cn-- Returns:
- null if not renamed
-
mapField
public java.lang.String mapField(java.lang.String cn)
Return the renamed version of a simple field/method- Parameters:
cn-- Returns:
- null if not renamed
-
mapSignature
public java.lang.String mapSignature(java.lang.String sig)
Return the renamed version of a method/type signature- Parameters:
sig-- Returns:
- null if not renamed
-
renameFileName
public java.lang.String renameFileName(java.lang.String classname, java.lang.String filename)Rename a file name based on a class name.- Parameters:
classname-filename-- Returns:
- the renamed file name
-
renameSignature
public java.lang.String renameSignature(java.lang.String signature)
Rename a method signature. Extract the class names from the Lpack1.class1;II)VLpack2.class2;- Parameters:
signature-- Returns:
- renamed signature
-
renameMethodName
public java.lang.String renameMethodName(java.lang.String className, java.lang.String method, boolean upper)Generate a new method name. Remember it as package.class^method - ? Some unusual Javac generated methods: HistogramQuery$Grouping.values() HistogramQuery.$SWITCH_TABLE$org$eclipse$mat$inspections$HistogramQuery$Grouping()- Parameters:
className-method- method name or field nameupper- static field in upper case, else all lower case.- Returns:
- the renamed method or field name
-
renameClassName
public java.lang.String renameClassName(java.lang.String classname)
Renames a class. Break into component parts, reusing existing mapping for package if already used. Removes array suffixes and uses base class name. Translates inner classes with '$' piece by piece, reusing existing mapping of outer class.- Parameters:
classname-- Returns:
- the renamed class name, or the original name if no renaming is to be done for this class
-
-