package org.intrace.output;
import java.util.Map;
import org.intrace.output.trace.TraceHandler;
/**
* Interface for classes which handle the output generated by instrumentation.
* <p>
* See the following classes for example implementations.
* <ul>
* <li>{@link TraceHandler}
* </ul>
*/
public interface IInstrumentationHandler
{
// Output handling methods
public void enter(String className, String methodName, int lineNo);
public void val(String desc, String className, String methodName, byte byteArg);
public void val(String desc, String className, String methodName,
byte[] byteArrayArg);
public void val(String desc, String className, String methodName,
short shortArg);
public void val(String desc, String className, String methodName,
short[] shortArrayArg);
public void val(String desc, String className, String methodName, int intArg);
public void val(String desc, String className, String methodName,
int[] intArrayArg);
public void val(String desc, String className, String methodName, long longArg);
public void val(String desc, String className, String methodName,
long[] longArrayArg);
public void val(String desc, String className, String methodName,
float floatArg);
public void val(String desc, String className, String methodName,
float[] floatArrayArg);
public void val(String desc, String className, String methodName,
double doubleArg);
public void val(String desc, String className, String methodName,
double[] doubleArrayArg);
public void val(String desc, String className, String methodName,
boolean boolArg);
public void val(String desc, String className, String methodName,
boolean[] boolArrayArg);
public void val(String desc, String className, String methodName, char charArg);
public void val(String desc, String className, String methodName,
char[] charArrayArg);
public void val(String desc, String className, String methodName,
Object objArg);
public void val(String desc, String className, String methodName,
Object[] objArrayArg);
public void val(String desc, String className, String methodName, int lineNo,
Throwable throwable);
public void branch(String className, String methodName, int lineNo);
public void exit(String className, String methodName, int lineNo);
/**
* Handle String message
*
* @param args
* @return Response or null if no response is required.
*/
public String getResponse(String args);
/**
* @return A map containing all active settings
*/
public Map<String, String> getSettingsMap();
}