// Path: h2hell-core/src/main/java/com/highway2urhell/domain/EntryPathData.java
// public class EntryPathData {
//     private String uri;
//     private String methodName;
//     private String className;
//     private String classNameNormalized;
//     private String signatureName;
//     private TypePath typePath = TypePath.UNKNOWN;
//     private Boolean audit = true;
//     private String httpMethod = "";
//     private List<EntryPathParam> listEntryPathData = new ArrayList<EntryPathParam>();
//     private Integer lineNumber;
// 
//     public Integer getLineNumber() {
// 		return lineNumber;
// 	}
// 
// 	public void setLineNumber(Integer lineNumber) {
// 		this.lineNumber = lineNumber;
// 	}
// 
// 	public Boolean getAudit() {
//         return audit;
//     }
// 
//     public void setAudit(Boolean audit) {
//         this.audit = audit;
//     }
// 
//     public String getUri() {
//         return uri;
//     }
// 
//     public void setUri(String uri) {
//         this.uri = uri;
//     }
// 
//     public String getMethodName() {
//         return methodName;
//     }
// 
//     public void setMethodName(String methodName) {
//         this.methodName = methodName;
//     }
// 
//     public String getClassName() {
//         return className;
//     }
// 
//     public void setClassName(String className) {
//         this.className = className;
//     }
// 
//     public String getClassNameNormalized() {
//         return classNameNormalized;
//     }
// 
//     public void setClassNameNormalized(String classNameNormalized) {
//         this.classNameNormalized = classNameNormalized;
//     }
// 
//     public String getSignatureName() {
//         return signatureName;
//     }
// 
//     public void setSignatureName(String signatureName) {
//         this.signatureName = signatureName;
//     }
// 
//     public TypePath getTypePath() {
//         return typePath;
//     }
// 
//     public void setTypePath(TypePath typePath) {
//         this.typePath = typePath;
//     }
// 
//     public String getHttpMethod() {
//         return httpMethod;
//     }
// 
//     public void setHttpMethod(String httpMethod) {
//         this.httpMethod = httpMethod;
//     }
// 
//     public List<EntryPathParam> getListEntryPathData() {
//         return listEntryPathData;
//     }
// 
//     public void setListEntryPathData(List<EntryPathParam> listEntryPathData) {
//         this.listEntryPathData = listEntryPathData;
//     }
// 
//     @Override
//     public String toString() {
//         return "EntryPathData [uri=" + uri + ", methodName=" + methodName
//                 + ", className=" + className + ", classNameNormalized="
//                 + classNameNormalized + ", signatureName=" + signatureName
//                 + ", typePath=" + typePath + ", httpMethod=" + httpMethod
//                 + "]";
//     }
// }


import com.highway2urhell.domain.EntryPathData;
import javassist.*;
import javassist.bytecode.CodeAttribute;
import javassist.bytecode.LocalVariableAttribute;
import java.lang.instrument.ClassFileTransformer;
import java.lang.instrument.IllegalClassFormatException;
import java.security.ProtectionDomain;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
package com.highway2urhell.transformer;



public class EntryPointTransformer implements ClassFileTransformer {

    private Map<String, List<EntryPathData>> mapToTransform = null;
    private Boolean performance = false;

// Path: h2hell-core/src/main/java/com/highway2urhell/domain/EntryPathData.java
// public class EntryPathData {
//     private String uri;
//     private String methodName;
//     private String className;
//     private String classNameNormalized;
//     private String signatureName;
//     private TypePath typePath = TypePath.UNKNOWN;
//     private Boolean audit = true;
//     private String httpMethod = "";
//     private List<EntryPathParam> listEntryPathData = new ArrayList<EntryPathParam>();
//     private Integer lineNumber;
// 
//     public Integer getLineNumber() {
// 		return lineNumber;
// 	}
// 
// 	public void setLineNumber(Integer lineNumber) {
// 		this.lineNumber = lineNumber;
// 	}
// 
// 	public Boolean getAudit() {
//         return audit;
//     }
// 
//     public void setAudit(Boolean audit) {
//         this.audit = audit;
//     }
// 
//     public String getUri() {
//         return uri;
//     }
// 
//     public void setUri(String uri) {
//         this.uri = uri;
//     }
// 
//     public String getMethodName() {
//         return methodName;
//     }
// 
//     public void setMethodName(String methodName) {
//         this.methodName = methodName;
//     }
// 
//     public String getClassName() {
//         return className;
//     }
// 
//     public void setClassName(String className) {
//         this.className = className;
//     }
// 
//     public String getClassNameNormalized() {
//         return classNameNormalized;
//     }
// 
//     public void setClassNameNormalized(String classNameNormalized) {
//         this.classNameNormalized = classNameNormalized;
//     }
// 
//     public String getSignatureName() {
//         return signatureName;
//     }
// 
//     public void setSignatureName(String signatureName) {
//         this.signatureName = signatureName;
//     }
// 
//     public TypePath getTypePath() {
//         return typePath;
//     }
// 
//     public void setTypePath(TypePath typePath) {
//         this.typePath = typePath;
//     }
// 
//     public String getHttpMethod() {
//         return httpMethod;
//     }
// 
//     public void setHttpMethod(String httpMethod) {
//         this.httpMethod = httpMethod;
//     }
// 
//     public List<EntryPathParam> getListEntryPathData() {
//         return listEntryPathData;
//     }
// 
//     public void setListEntryPathData(List<EntryPathParam> listEntryPathData) {
//         this.listEntryPathData = listEntryPathData;
//     }
// 
//     @Override
//     public String toString() {
//         return "EntryPathData [uri=" + uri + ", methodName=" + methodName
//                 + ", className=" + className + ", classNameNormalized="
//                 + classNameNormalized + ", signatureName=" + signatureName
//                 + ", typePath=" + typePath + ", httpMethod=" + httpMethod
//                 + "]";
//     }
// }


// Path: h2hell-core/src/main/java/com/highway2urhell/transformer/EntryPointTransformer.java
import com.highway2urhell.domain.EntryPathData;
import javassist.*;
import javassist.bytecode.CodeAttribute;
import javassist.bytecode.LocalVariableAttribute;
import java.lang.instrument.ClassFileTransformer;
import java.lang.instrument.IllegalClassFormatException;
import java.security.ProtectionDomain;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

package com.highway2urhell.transformer;



public class EntryPointTransformer implements ClassFileTransformer {

    private Map<String, List<EntryPathData>> mapToTransform = null;
    private Boolean performance = false;

    public EntryPointTransformer(Map<String, List<EntryPathData>> mapTransform, Boolean perf) {