Interface GeneratorFactory
-
public interface GeneratorFactoryInterface for handling generators in the providence compiler (pvdc). To make a generator module:- Place following dependencies as
providedscope. - Make a jar file bundle with the
maven-shade-plugin. - Set the
Providence-Generator-Factoryproperty in the javaMANIFEST.MFto point at the implementation of this interface. - See documentation for
pvdcfor where the jar file should be placed to be included in the available generators.
Dependencies
<dependencies> <dependency> <groupId>net.morimekta.providence</groupId> <artifactId>providence-core</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>net.morimekta.providence</groupId> <artifactId>providence-reflect</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>net.morimekta.providence</groupId> <artifactId>providence-generator</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>net.morimekta.utils</groupId> <artifactId>io-util</artifactId> <scope>provided</scope> </dependency> </dependencies>Manifest Transformer
<transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <manifestEntries> <Providence-Generator-Factory>net.morimekta.providence.generator.format.js.JSGenerator</Providence-Generator-Factory> </manifestEntries> </transformer> </transformers> - Place following dependencies as
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringMANIFEST_PROPERTY
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description GeneratorcreateGenerator(FileManager manager, GeneratorOptions generatorOptions, java.util.Collection<java.lang.String> options)Create the actual generator.java.lang.StringgeneratorDescription()A general description of the generator.java.lang.StringgeneratorName()The name of the generator.default voidprintGeneratorOptionsHelp(java.io.PrintStream out)Print a listing of the generator options in a CLI like point list.
-
-
-
Field Detail
-
MANIFEST_PROPERTY
static final java.lang.String MANIFEST_PROPERTY
- See Also:
- Constant Field Values
-
-
Method Detail
-
generatorName
java.lang.String generatorName()
The name of the generator. This is what must be matched in the--gengenerator CLI argument.- Returns:
- The name of the generator.
-
generatorDescription
java.lang.String generatorDescription()
A general description of the generator. Should be in the range of 20-60 characters.- Returns:
- The generator description.
-
printGeneratorOptionsHelp
default void printGeneratorOptionsHelp(java.io.PrintStream out)
Print a listing of the generator options in a CLI like point list. E.g.:- first : The first option, does this. - second : The second option, does that.
- Parameters:
out- The print stream to write to.
-
createGenerator
Generator createGenerator(FileManager manager, GeneratorOptions generatorOptions, java.util.Collection<java.lang.String> options)
Create the actual generator. The generator instance is usually the same when generating many thrift programs, but does not need to be synchronized.- Parameters:
manager- The file manager to use for creating files.generatorOptions- The general generator options.options- List of string options to create generator-specific options.- Returns:
- The generator instance.
-
-