You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

IClassFileProvider.java 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /*******************************************************************************
  2. * Copyright (c) 2004 IBM Corporation and others.
  3. * All rights reserved. This program and the accompanying materials
  4. * are made available under the terms of the Eclipse Public License v1.0
  5. * which accompanies this distribution, and is available at
  6. * http://www.eclipse.org/legal/epl-v10.html
  7. *
  8. * Contributors:
  9. * IBM Corporation - initial API and implementation
  10. *******************************************************************************/
  11. package org.aspectj.weaver;
  12. import java.util.Iterator;
  13. import org.aspectj.weaver.bcel.UnwovenClassFile;
  14. /**
  15. * @author colyer
  16. *
  17. * Clients implementing the IClassFileProvider can have a set of class files under their control woven by a weaver, by
  18. * calling the weave(IClassFileProvider source) method. The contract is that a call to getRequestor().acceptResult() is
  19. * providing a result for the class file most recently returned from the getClassFileIterator().
  20. */
  21. public interface IClassFileProvider {
  22. /**
  23. * Answer an iterator that can be used to iterate over a set of UnwovenClassFiles to be woven. During a weave, this method may
  24. * be called multiple times.
  25. *
  26. * @return iterator over UnwovenClassFiles.
  27. */
  28. Iterator<UnwovenClassFile> getClassFileIterator();
  29. /**
  30. * The client to which the woven results should be returned.
  31. */
  32. IWeaveRequestor getRequestor();
  33. /**
  34. * @return true if weaver should only do some internal munging as the one needed for @AspectJ aspectOf methods creation
  35. */
  36. boolean isApplyAtAspectJMungersOnly();
  37. }