All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.aspectj.weaver.IClassFileProvider Maven / Gradle / Ivy

Go to download

AspectJ tools most notably contains the AspectJ compiler (AJC). AJC applies aspects to Java classes during compilation, fully replacing Javac for plain Java classes and also compiling native AspectJ or annotation-based @AspectJ syntax. Furthermore, AJC can weave aspects into existing class files in a post-compile binary weaving step. This library is a superset of AspectJ weaver and hence also of AspectJ runtime.

There is a newer version: 1.9.22.1
Show newest version
/*******************************************************************************
 * Copyright (c) 2004 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.aspectj.weaver;

import java.util.Iterator;

import org.aspectj.weaver.bcel.UnwovenClassFile;

/**
 * @author colyer
 *
 *         Clients implementing the IClassFileProvider can have a set of class files under their control woven by a weaver, by
 *         calling the weave(IClassFileProvider source) method. The contract is that a call to getRequestor().acceptResult() is
 *         providing a result for the class file most recently returned from the getClassFileIterator().
 */
public interface IClassFileProvider {

	/**
	 * Answer an iterator that can be used to iterate over a set of UnwovenClassFiles to be woven. During a weave, this method may
	 * be called multiple times.
	 *
	 * @return iterator over UnwovenClassFiles.
	 */
	Iterator getClassFileIterator();

	/**
	 * The client to which the woven results should be returned.
	 */
	IWeaveRequestor getRequestor();

	/**
	 * @return true if weaver should only do some internal munging as the one needed for @AspectJ aspectOf methods creation
	 */
	boolean isApplyAtAspectJMungersOnly();

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy