edu.wisc.cs.stego
Class CodeEditor

java.lang.Object
  |
  +--edu.wisc.cs.stego.CodeEditor
Direct Known Subclasses:
Unprofile

public abstract class CodeEditor
extends java.lang.Object

The CodeEditor class should be extended by a class intended for use with a software watermarking package to modify class files to embed a watermark.


Constructor Summary
protected CodeEditor()
          This class is not instantiable but this must be accessable to subclasses.
 
Method Summary
static CodeEditor buildCodeEditor(java.lang.String[] params)
          This method is a factory for producing CodeEditor objects for use in a watermark embedding program.
abstract  void instrumentClasses(WatermarkGraph graph, ProfilePoint[] profile, java.util.Map classes, java.lang.String nodec)
          Modifies the classes to remove the profile points and replace them with code to build the watermark graph.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CodeEditor

protected CodeEditor()
This class is not instantiable but this must be accessable to subclasses.
Method Detail

buildCodeEditor

public static CodeEditor buildCodeEditor(java.lang.String[] params)
This method is a factory for producing CodeEditor objects for use in a watermark embedding program. This method must be overridden by classes which inherit from this one. Even though it is not required by the sematics of the Java language, it is required by our specification for valid Encoder classes.
Parameters:
params - parameters for the initialization of the new CodeEditor object.
Returns:
a newly constructed and initialized CodeEditor object.
Throws:
NoSuchMethodError - if this is not overridden by the subclass.

instrumentClasses

public abstract void instrumentClasses(WatermarkGraph graph,
                                       ProfilePoint[] profile,
                                       java.util.Map classes,
                                       java.lang.String nodec)
Modifies the classes to remove the profile points and replace them with code to build the watermark graph.
Parameters:
graph - the graph to be encoded.
profile - the array of profile points.
classes - a map containing the classes, keyed by their name.
nodec - the name of the class to be used for the graph node.