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.Object
Remaps 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 boolean
isRemapped(java.lang.String cn)
Is the class name one which should have a new name invented?void
loadMapping(java.io.File mapFile, boolean undo)
Load the existing mapping table from a mapping properties file.java.lang.String
mapClass(java.lang.String cn)
Return the renamed version of a classjava.lang.String
mapField(java.lang.String cn)
Return the renamed version of a simple field/methodjava.lang.String
mapSignature(java.lang.String sig)
Return the renamed version of a method/type signaturejava.lang.String
renameClassName(java.lang.String classname)
Renames a class.java.lang.String
renameFileName(java.lang.String classname, java.lang.String filename)
Rename a file name based on a class name.java.lang.String
renameMethodName(java.lang.String className, java.lang.String method, boolean upper)
Generate a new method name.java.lang.String
renameSignature(java.lang.String signature)
Rename a method signature.void
saveMapping(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.IOException
Load 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
-
-