ModifiedSystemClassRuntime (JaCoCo 0.6.3.201306030806 API)
Date: 2013-06-03

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jacoco.core.runtime
Class ModifiedSystemClassRuntime

    java.lang.Object
      org.jacoco.core.runtime.AbstractRuntime
          org.jacoco.core.runtime.ModifiedSystemClassRuntime

All Implemented Interfaces:
  IExecutionDataAccessorGenerator, IRuntime

    public class ModifiedSystemClassRuntime

extends AbstractRuntime

This `IRuntime` implementation works with a modified system class. A new static method is added to a bootstrap class that will be used by instrumented classes. As the system class itself needs to be instrumented this runtime requires a Java agent.

Field Summary

Fields inherited from class org.jacoco.core.runtime.AbstractRuntime
`data`

Constructor Summary
`ModifiedSystemClassRuntime(Class<?> systemClass, String accessFieldName)` Creates a new runtime based on the given class and members.

Method Summary
`static IRuntime` | `createFor(Instrumentation inst, String className)` Creates a new `ModifiedSystemClassRuntime` using the given class as the data container.
`static IRuntime` | `createFor(Instrumentation inst, String className, String accessFieldName)` Creates a new `ModifiedSystemClassRuntime` using the given class as the data container.
`int` | `generateDataAccessor(long classid, String classname, int probecount, org.objectweb.asm.MethodVisitor mv)` This method generates the byte code required to obtain the coverage data structure for the class with the given id.
`static byte[]` | `instrument(byte[] source, String accessFieldName)` Adds the static access method and data field to the given class definition.
`void` | `shutdown()` Allows the coverage runtime to cleanup internals.
`void` | `startup(RuntimeData data)` Subclasses must call this method when overwriting it.

Methods inherited from class org.jacoco.core.runtime.AbstractRuntime
`createRandomId, disconnect`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### ModifiedSystemClassRuntime

    public ModifiedSystemClassRuntime(Class<?> systemClass,
                                      String accessFieldName)

  Creates a new runtime based on the given class and members.

  Parameters:
    `systemClass` - system class that contains the execution data
    `accessFieldName` - name of the public static runtime access field

Method Detail

### startup

    public void startup(RuntimeData data)
                 throws Exception

  Description copied from class: `AbstractRuntime`
  Subclasses must call this method when overwriting it.

  Specified by:
    `startup` in interface `IRuntime`
  Overrides:
    `startup` in class `AbstractRuntime`
  Parameters:
    `data` - the execution data for this runtime
  Throws:
    `Exception` - any internal problem during startup

### shutdown

    public void shutdown()

  Description copied from interface: `IRuntime`
  Allows the coverage runtime to cleanup internals. This class should be called when classes instrumented for this runtime are not used any more.

### generateDataAccessor

    public int generateDataAccessor(long classid,
                                    String classname,
                                    int probecount,
                                    org.objectweb.asm.MethodVisitor mv)

  Description copied from interface: `IExecutionDataAccessorGenerator`
  This method generates the byte code required to obtain the coverage data structure for the class with the given id. Typically the instrumentation process will embed this code into a method that is called on class initialization. This method can be called at any time even outside the target VM. The generated code must push a `boolean[]` instance to the operand stack. Except this result object the generated code must not make any assumptions about the structure of the embedding method or class. The generated code must not use or allocate local variables.

  Parameters:
    `classid` - identifier of the class
    `classname` - VM class name
    `probecount` - probe count for this class
    `mv` - code output
  Returns:
    additional stack size required by the implementation, including the instance pushed to the stack

### createFor

    public static IRuntime createFor(Instrumentation inst,
                                     String className)
                              throws ClassNotFoundException

  Creates a new `ModifiedSystemClassRuntime` using the given class as the data container. Members are creates with internal default names. The given class must not have been loaded before by the agent.

  Parameters:
    `inst` - instrumentation interface
    `className` - VM name of the class to use
  Returns:
    new runtime instance
  Throws:
    `ClassNotFoundException` - id the given class can not be found

### createFor

    public static IRuntime createFor(Instrumentation inst,
                                     String className,
                                     String accessFieldName)
                              throws ClassNotFoundException

  Creates a new `ModifiedSystemClassRuntime` using the given class as the data container. The given class must not have been loaded before by the agent.

  Parameters:
    `inst` - instrumentation interface
    `className` - VM name of the class to use
    `accessFieldName` - name of the added runtime access field
  Returns:
    new runtime instance
  Throws:
    `ClassNotFoundException` - id the given class can not be found

### instrument

    public static byte[] instrument(byte[] source,
                                    String accessFieldName)

  Adds the static access method and data field to the given class definition.

  Parameters:
    `source` - class definition source
    `accessFieldName` - name of the runtime access field
  Returns:
    instrumented version with added members

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2009-2013 Mountainminds GmbH & Co. KG. All Rights Reserved.