// Path: src/main/java/io/jvoid/metadata/model/JClass.java
// @Data
// public class JClass implements JEntity<Long>, ChecksumAware {
// 
//     private Long id;
//     private Long executionId;
//     private String identifier;
//     private String checksum;
//     private String superClassIdentifier;
//     
// }


import com.google.inject.Singleton;
import io.jvoid.metadata.model.JClass;
package io.jvoid.instrumentation.provider.app;



/**
 * This class is used to keep track of the current JClass object
 * created by the {@code AppClassHandler} and useful in the
 * {@code TrackerMethodInstrumenter} in order to avoid multiple
 * queries to the DB.
 *
 */
@Singleton
public class AppInstrumentationJClassHolder {

    private ThreadLocal<JClass> jClassUnderInstrumentation = new ThreadLocal<>();

// Path: src/main/java/io/jvoid/metadata/model/JClass.java
// @Data
// public class JClass implements JEntity<Long>, ChecksumAware {
// 
//     private Long id;
//     private Long executionId;
//     private String identifier;
//     private String checksum;
//     private String superClassIdentifier;
//     
// }


// Path: src/main/java/io/jvoid/instrumentation/provider/app/AppInstrumentationJClassHolder.java
import com.google.inject.Singleton;
import io.jvoid.metadata.model.JClass;

package io.jvoid.instrumentation.provider.app;



/**
 * This class is used to keep track of the current JClass object
 * created by the {@code AppClassHandler} and useful in the
 * {@code TrackerMethodInstrumenter} in order to avoid multiple
 * queries to the DB.
 *
 */
@Singleton
public class AppInstrumentationJClassHolder {

    private ThreadLocal<JClass> jClassUnderInstrumentation = new ThreadLocal<>();

    public JClass getJClassUnderInstrumentation() {