Class PluginProtoCompiler

  • All Implemented Interfaces:
    ProtoCompiler

    public class PluginProtoCompiler
    extends STCodeGenerator
    A plugin proto compiler whose output relies on the 'output' param configured in ProtoModule. The output param should point to a StringTemplate resource (file, url, or from classpath).
    • Field Detail

      • CHECK_FILENAME_PLACEHOLDER

        protected static final boolean CHECK_FILENAME_PLACEHOLDER
        To enable, specify -Dppc.check_filename_placeholder=true
      • 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

      • 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)
      • 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