Class ClassWriter

  • All Implemented Interfaces:
    soot.HasPhaseOptions

    public class ClassWriter
    extends soot.SceneTransformer
    implements soot.HasPhaseOptions
    Write all of the application classes out to class files. Jasmin files for the classes will be created in a temporary directory and then compiled into bytecode using the Jasmin assembler. The output directory is specified using the outputDirectory parameter. The class files will be placed in the appropriate subdirectory of that directory according to their package name.
    Since:
    Ptolemy II 2.0
    Version:
    $Id$
    Author:
    Stephen Neuendorffer
    Pt.AcceptedRating:
    Red (cxh)
    Pt.ProposedRating:
    Red (cxh)
    • Method Detail

      • getPhaseName

        public java.lang.String getPhaseName()
        Specified by:
        getPhaseName in interface soot.HasPhaseOptions
      • getDefaultOptions

        public java.lang.String getDefaultOptions()
        Specified by:
        getDefaultOptions in interface soot.HasPhaseOptions
      • getDeclaredOptions

        public java.lang.String getDeclaredOptions()
        Specified by:
        getDeclaredOptions in interface soot.HasPhaseOptions
      • internalTransform

        protected void internalTransform​(java.lang.String phaseName,
                                         java.util.Map options)
        Write out the class file. This transform can be used to take snapshots, and is usually called in conjunction with JimpleWriter inside addTransforms():
           Scene.v().getPack("wjtp").add(new Transform("wjtp.snapshot1",
                   ClassWriter.v()));
           Scene.v().getPack("wjtp").add(new Transform("wjtp.snapshot1",
                   JimpleWriter.v()));
          
        Sample option arguments: -p wjtp.snapshot1 outputDirectory:jimple1
        Specified by:
        internalTransform in class soot.SceneTransformer
        Parameters:
        phaseName - The name of the phase, for example wjtp.snapshot1.
        options - The options Map. This method uses the outputDirectory option to specify where the .class file should be written
        See Also:
        JimpleWriter