org.aspectj.weaver.IClassFileProvider Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aspectjtools Show documentation
Show all versions of aspectjtools Show documentation
Tools from the AspectJ project
/*******************************************************************************
* 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();
}