Class TranslationFileGenerator


  • @SupportedOptions({"generatedTranslationFilesPath","org.jboss.logging.tools.level","org.jboss.logging.tools.generated.skip.index"})
    final class TranslationFileGenerator
    extends AbstractGenerator
    The generator of skeletal translations files.
    • Field Detail

      • levels

        private static final java.util.Map<java.lang.String,​java.lang.Integer> levels
      • PATTERN

        private static final java.util.regex.Pattern PATTERN
      • DEFAULT_FILE_EXTENSION

        private static final java.lang.String DEFAULT_FILE_EXTENSION
        See Also:
        Constant Field Values
      • DEFAULT_FILE_COMMENT

        private static final java.lang.String DEFAULT_FILE_COMMENT
        See Also:
        Constant Field Values
      • GENERATED_FILES_PATH_OPTION

        static final java.lang.String GENERATED_FILES_PATH_OPTION
        See Also:
        Constant Field Values
      • GENERATED_FILE_EXTENSION

        static final java.lang.String GENERATED_FILE_EXTENSION
        See Also:
        Constant Field Values
      • generatedFilesPath

        private final java.lang.String generatedFilesPath
      • skipIndex

        private final boolean skipIndex
    • Constructor Detail

      • TranslationFileGenerator

        TranslationFileGenerator​(javax.annotation.processing.ProcessingEnvironment processingEnv)
        The constructor.
        Parameters:
        processingEnv - the processing env
    • Method Detail

      • processTypeElement

        public void processTypeElement​(javax.lang.model.element.TypeElement annotation,
                                       javax.lang.model.element.TypeElement element,
                                       MessageInterface messageInterface)
        Description copied from class: AbstractGenerator
        Processes a type element.
        Specified by:
        processTypeElement in class AbstractGenerator
        Parameters:
        annotation - the annotation who trigger the processing
        element - the element that contains the methods.
        messageInterface - the message interface to implement.
      • generateSkeletalTranslationFile

        private void generateSkeletalTranslationFile​(java.lang.String relativePath,
                                                     java.lang.String fileName,
                                                     MessageInterface messageInterface)
        Generate the translation file containing the given translations.
        Parameters:
        relativePath - the relative path
        fileName - the file name
        messageInterface - the message interface
      • generateDefaultTranslationFile

        private void generateDefaultTranslationFile​(MessageInterface messageInterface)
        Generates a default i18n properties file.
        Parameters:
        messageInterface - the message interface
      • writeSkeletonMessageMethod

        private void writeSkeletonMessageMethod​(java.io.BufferedWriter writer,
                                                MessageMethod messageMethod)
                                         throws java.io.IOException
        Throws:
        java.io.IOException
      • parseParameterComments

        private java.util.Map<java.lang.String,​java.lang.String> parseParameterComments​(MessageMethod messageMethod)
                                                                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • isMethodWritable

        private boolean isMethodWritable​(MessageMethod method)
      • writeSeparatorLine

        private static void writeSeparatorLine​(java.io.BufferedWriter writer)
                                        throws java.io.IOException
        Throws:
        java.io.IOException
      • getPrimaryClassNamePrefix

        private static java.lang.String getPrimaryClassNamePrefix​(javax.lang.model.element.TypeElement element)
        Returns the primary class simple name prefix for an element who represents a MessageBundle or MessageLogger interface.
        Parameters:
        element - the element
        Returns:
        the translation file name prefix
        Throws:
        java.lang.IllegalArgumentException - if element is null or the element is not an interface
      • addIndexesToFormat

        private java.lang.String addIndexesToFormat​(MessageMethod method)