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 interface
PluginProtoCompiler.GroupResolver
Resolve the stg from the module.
-
Field Summary
Fields Modifier and Type Field Description private static PluginProtoCompiler.GroupResolver
__resolver
protected static boolean
CHECK_FILENAME_PLACEHOLDER
To enable, specify -Dppc.check_filename_placeholder=trueorg.antlr.stringtemplate.StringTemplate
enumBlockTemplate
java.lang.String
fileExtension
org.antlr.stringtemplate.StringTemplateGroup
group
static PluginProtoCompiler.GroupResolver
GROUP_RESOLVER
boolean
javaOutput
org.antlr.stringtemplate.StringTemplate
messageBlockTemplate
ProtoModule
module
java.lang.String
outputName
java.lang.String
outputPrefix
java.lang.String
outputSuffix
org.antlr.stringtemplate.StringTemplate
protoBlockTemplate
org.antlr.stringtemplate.StringTemplate
serviceBlockTemplate
-
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 void
compile(ProtoModule module, Proto proto)
static void
compileEnumBlock(ProtoModule module, EnumGroup eg, java.lang.String packageName, java.lang.String fileName, org.antlr.stringtemplate.StringTemplate enumBlockTemplate)
static void
compileEnumBlockTo(java.io.Writer writer, ProtoModule module, EnumGroup eg, org.antlr.stringtemplate.StringTemplate enumBlockTemplate)
static void
compileMessageBlock(ProtoModule module, Message message, java.lang.String packageName, java.lang.String fileName, org.antlr.stringtemplate.StringTemplate messageBlockTemplate)
static void
compileMessageBlockTo(java.io.Writer writer, ProtoModule module, Message message, org.antlr.stringtemplate.StringTemplate messageBlockTemplate)
void
compileProtoBlock(ProtoModule module, Proto proto, java.lang.String packageName, org.antlr.stringtemplate.StringTemplate protoBlockTemplate)
private void
compileServiceBlock(ProtoModule module, Service service, java.lang.String packageName, java.lang.String fileName, org.antlr.stringtemplate.StringTemplate serviceBlockTemplate)
static void
compileServiceBlockTo(java.io.Writer writer, ProtoModule module, Service service, org.antlr.stringtemplate.StringTemplate serviceBlockTemplate)
static java.lang.String
getFileExtension(java.lang.String resource)
Get the file extension of the provided stg resource.(package private) static java.lang.String
getOutputName(java.lang.String resource)
Returns "foo" from "path/to/foo.java.stg"static org.antlr.stringtemplate.StringTemplate
getTemplateFrom(org.antlr.stringtemplate.StringTemplateGroup group, java.lang.String template)
Returns null if template is not found.java.lang.String
resolveFileName(java.lang.String name)
static org.antlr.stringtemplate.StringTemplateGroup
resolveSTG(java.lang.String stgLocation)
Finds the stg resource.static void
setGroupResolver(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:
compile
in 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
-
-