Interface Generator

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

public interface Generator extends ResourceProvider

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

In general, generators should follow one of the following patterns:

  1. They generate resources from inputs that are specific for the type of generator. 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 individual 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 obtained from ResourceProviders by the generator. In this case, the 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