@Override
    public void transform(String className, Class<? extends TransformCallback> transformCallbackClass, Object[] parameters, Class<?>[] parameterTypes) {
        Objects.requireNonNull(className, "className");
        Objects.requireNonNull(transformCallbackClass, "transformCallbackClass");

        TransformCallbackChecker.validate(transformCallbackClass, parameterTypes);
        if (ParameterUtils.hasNull(parameterTypes)) {
            throw new IllegalArgumentException("null parameterType not supported");
        }
        ParameterUtils.checkParameterType(parameterTypes);


        final Matcher matcher = Matchers.newClassNameMatcher(className);

        // release class reference
        final String transformCallbackName = transformCallbackClass.getName();
        this.instrumentContext.addClassFileTransformer(matcher, transformCallbackName, parameters, parameterTypes);
    }
@deprecated Since 1.9.0 Use {@link #transform(String, Class)}
agent-module/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/instrument/transformer/TransformTemplate.java