Interface Generator

All Superinterfaces:
ResourceProvider
All Known Implementing Classes:
AbstractBndGenerator, AbstractGenerator, BndAnalyzer, BndBaseliner, ClasspathScanner, EclipseConfigurator, JarBuilder, JavaCompiler, Javadoc, JavadocJarGenerator, JavaResourceCollector, JavaTool, JUnitTestRunner, LibraryBuilder, MvnPublisher, PomFileGenerator, ResourceCollector, SourcesJarGenerator, UberJarBuilder, VscodeConfigurator

public interface Generator extends ResourceProvider

Models a ResourceProvider that generates new Resources (artifacts) and makes them available to a Project.

In general, generators follow one of the following patterns:

  1. They generate resources from arbitrary inputs. In this case, methods for adding inputs should be named as appropriate for the generator and the type of input.

  2. They generate resources from explicitly specified resources. In this case, methods for adding inputs should be named add(Type... values) for enumerated values and addXxx(Stream<Type> values) for streams. (We cannot define a generic add(Stream<T>) method due to type erasure.)

  3. They generate resources from resources actively obtained from ResourceProviders. In this case, methods for adding providers should be named addFrom(...). This can be enforced by implementing ResourceRetriever.

All generators must handle requests for Cleanliness.

  • Method Details

    • project

      Returns the project that this generator belongs to.
      Returns:
      the project