Package io.protostuff.compiler
Class PluginProtoCompiler
- java.lang.Object
-
- io.protostuff.compiler.STCodeGenerator
-
- io.protostuff.compiler.PluginProtoCompiler
-
- All Implemented Interfaces:
ProtoCompiler
public class PluginProtoCompiler extends STCodeGenerator
A plugin proto compiler whose output relies on the 'output' param configured inProtoModule. The output param should point to a StringTemplate resource (file, url, or from classpath).
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfacePluginProtoCompiler.GroupResolverResolve the stg from the module.
-
Field Summary
Fields Modifier and Type Field Description private static PluginProtoCompiler.GroupResolver__resolverprotected static booleanCHECK_FILENAME_PLACEHOLDERTo enable, specify -Dppc.check_filename_placeholder=trueorg.antlr.stringtemplate.StringTemplateenumBlockTemplatejava.lang.StringfileExtensionorg.antlr.stringtemplate.StringTemplateGroupgroupstatic PluginProtoCompiler.GroupResolverGROUP_RESOLVERbooleanjavaOutputorg.antlr.stringtemplate.StringTemplatemessageBlockTemplateProtoModulemodulejava.lang.StringoutputNamejava.lang.StringoutputPrefixjava.lang.StringoutputSuffixorg.antlr.stringtemplate.StringTemplateprotoBlockTemplateorg.antlr.stringtemplate.StringTemplateserviceBlockTemplate-
Fields inherited from class io.protostuff.compiler.STCodeGenerator
DEFAULT_FORMATTERS, DEFAULT_RENDERERS, ERROR_LISTENER, errorCount, FORMAT_DELIM, GROUP_LOADER, id, STRING_ATTRIBUTE_RENDERER, TEMPLATE_BASE
-
-
Constructor Summary
Constructors Constructor Description PluginProtoCompiler(ProtoModule module, boolean checkFilenamePlaceHolder, org.antlr.stringtemplate.StringTemplateGroup group)PluginProtoCompiler(ProtoModule module, java.lang.String stgLocation)PluginProtoCompiler(ProtoModule module, java.lang.String stgLocation, boolean checkFilenamePlaceHolder)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcompile(ProtoModule module, Proto proto)static voidcompileEnumBlock(ProtoModule module, EnumGroup eg, java.lang.String packageName, java.lang.String fileName, org.antlr.stringtemplate.StringTemplate enumBlockTemplate)static voidcompileEnumBlockTo(java.io.Writer writer, ProtoModule module, EnumGroup eg, org.antlr.stringtemplate.StringTemplate enumBlockTemplate)static voidcompileMessageBlock(ProtoModule module, Message message, java.lang.String packageName, java.lang.String fileName, org.antlr.stringtemplate.StringTemplate messageBlockTemplate)static voidcompileMessageBlockTo(java.io.Writer writer, ProtoModule module, Message message, org.antlr.stringtemplate.StringTemplate messageBlockTemplate)voidcompileProtoBlock(ProtoModule module, Proto proto, java.lang.String packageName, org.antlr.stringtemplate.StringTemplate protoBlockTemplate)private voidcompileServiceBlock(ProtoModule module, Service service, java.lang.String packageName, java.lang.String fileName, org.antlr.stringtemplate.StringTemplate serviceBlockTemplate)static voidcompileServiceBlockTo(java.io.Writer writer, ProtoModule module, Service service, org.antlr.stringtemplate.StringTemplate serviceBlockTemplate)static java.lang.StringgetFileExtension(java.lang.String resource)Get the file extension of the provided stg resource.(package private) static java.lang.StringgetOutputName(java.lang.String resource)Returns "foo" from "path/to/foo.java.stg"static org.antlr.stringtemplate.StringTemplategetTemplateFrom(org.antlr.stringtemplate.StringTemplateGroup group, java.lang.String template)Returns null if template is not found.java.lang.StringresolveFileName(java.lang.String name)static org.antlr.stringtemplate.StringTemplateGroupresolveSTG(java.lang.String stgLocation)Finds the stg resource.static voidsetGroupResolver(PluginProtoCompiler.GroupResolver resolver)-
Methods inherited from class io.protostuff.compiler.STCodeGenerator
chainedFormat, collect, compile, compile, format, getOutputId, getST, getSTG, override, parseProto, postCompile, setAttributeRenderer, setFormatter, setGroupLoader
-
-
-
-
Field Detail
-
CHECK_FILENAME_PLACEHOLDER
protected static final boolean CHECK_FILENAME_PLACEHOLDER
To enable, specify -Dppc.check_filename_placeholder=true
-
GROUP_RESOLVER
public static final PluginProtoCompiler.GroupResolver GROUP_RESOLVER
-
__resolver
private static PluginProtoCompiler.GroupResolver __resolver
-
module
public final ProtoModule module
-
group
public final org.antlr.stringtemplate.StringTemplateGroup group
-
enumBlockTemplate
public final org.antlr.stringtemplate.StringTemplate enumBlockTemplate
-
messageBlockTemplate
public final org.antlr.stringtemplate.StringTemplate messageBlockTemplate
-
protoBlockTemplate
public final org.antlr.stringtemplate.StringTemplate protoBlockTemplate
-
serviceBlockTemplate
public final org.antlr.stringtemplate.StringTemplate serviceBlockTemplate
-
javaOutput
public final boolean javaOutput
-
fileExtension
public final java.lang.String fileExtension
-
outputName
public final java.lang.String outputName
-
outputPrefix
public final java.lang.String outputPrefix
-
outputSuffix
public final java.lang.String outputSuffix
-
-
Constructor Detail
-
PluginProtoCompiler
public PluginProtoCompiler(ProtoModule module, java.lang.String stgLocation)
-
PluginProtoCompiler
public PluginProtoCompiler(ProtoModule module, java.lang.String stgLocation, boolean checkFilenamePlaceHolder)
-
PluginProtoCompiler
public PluginProtoCompiler(ProtoModule module, boolean checkFilenamePlaceHolder, org.antlr.stringtemplate.StringTemplateGroup group)
-
-
Method Detail
-
setGroupResolver
public static void setGroupResolver(PluginProtoCompiler.GroupResolver resolver)
-
getTemplateFrom
public static org.antlr.stringtemplate.StringTemplate getTemplateFrom(org.antlr.stringtemplate.StringTemplateGroup group, java.lang.String template)Returns null if template is not found.
-
getOutputName
static java.lang.String getOutputName(java.lang.String resource)
Returns "foo" from "path/to/foo.java.stg"
-
getFileExtension
public static java.lang.String getFileExtension(java.lang.String resource)
Get the file extension of the provided stg resource.
-
resolveSTG
public static org.antlr.stringtemplate.StringTemplateGroup resolveSTG(java.lang.String stgLocation)
Finds the stg resource.
-
resolveFileName
public java.lang.String resolveFileName(java.lang.String name)
-
compile
public void compile(ProtoModule module, Proto proto) throws java.io.IOException
- Specified by:
compilein classSTCodeGenerator- Throws:
java.io.IOException
-
compileServiceBlock
private void compileServiceBlock(ProtoModule module, Service service, java.lang.String packageName, java.lang.String fileName, org.antlr.stringtemplate.StringTemplate serviceBlockTemplate) throws java.io.IOException
- Throws:
java.io.IOException
-
compileServiceBlockTo
public static void compileServiceBlockTo(java.io.Writer writer, ProtoModule module, Service service, org.antlr.stringtemplate.StringTemplate serviceBlockTemplate) throws java.io.IOException- Throws:
java.io.IOException
-
compileEnumBlock
public static void compileEnumBlock(ProtoModule module, EnumGroup eg, java.lang.String packageName, java.lang.String fileName, org.antlr.stringtemplate.StringTemplate enumBlockTemplate) throws java.io.IOException
- Throws:
java.io.IOException
-
compileEnumBlockTo
public static void compileEnumBlockTo(java.io.Writer writer, ProtoModule module, EnumGroup eg, org.antlr.stringtemplate.StringTemplate enumBlockTemplate) throws java.io.IOException- Throws:
java.io.IOException
-
compileMessageBlock
public static void compileMessageBlock(ProtoModule module, Message message, java.lang.String packageName, java.lang.String fileName, org.antlr.stringtemplate.StringTemplate messageBlockTemplate) throws java.io.IOException
- Throws:
java.io.IOException
-
compileMessageBlockTo
public static void compileMessageBlockTo(java.io.Writer writer, ProtoModule module, Message message, org.antlr.stringtemplate.StringTemplate messageBlockTemplate) throws java.io.IOException- Throws:
java.io.IOException
-
compileProtoBlock
public void compileProtoBlock(ProtoModule module, Proto proto, java.lang.String packageName, org.antlr.stringtemplate.StringTemplate protoBlockTemplate) throws java.io.IOException
- Throws:
java.io.IOException
-
-