/* * Copyright (c) 1986-2015, Serkan OZAL, All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package tr.com.serkanozal.jillegal.agent; /** * Contact point for implementations which take given class data (bytecode) and * returns the processed version (no change or modified/instrumented). * * @author Serkan OZAL */ public interface ClassDataProcessor { /** * Takes the given class data (bytecode) and * returns the processed version (no change or modified/instrumented). * * @param loader the {@link ClassLoader} which loads the given class data (bytecode) * @param className name of the loaded class * @param classData bytecode of the class to be processed * @return processed version (no change or modified/instrumented) of the given class data */ byte[] process(ClassLoader loader, String className, byte[] classData); }