Class PropertiesMacro

  • All Implemented Interfaces:
    org.apache.maven.doxia.logging.LogEnabled, org.apache.maven.doxia.macro.Macro

    @Component(role=org.apache.maven.doxia.macro.Macro.class,
               hint="properties")
    public class PropertiesMacro
    extends org.apache.maven.doxia.macro.AbstractMacro
    A macro that inserts a table of properties for the given checkstyle module.
    • Method Detail

      • execute

        public void execute​(org.apache.maven.doxia.sink.Sink sink,
                            org.apache.maven.doxia.macro.MacroRequest request)
                     throws org.apache.maven.doxia.macro.MacroExecutionException
        Throws:
        org.apache.maven.doxia.macro.MacroExecutionException
      • configureGlobalProperties

        private static void configureGlobalProperties​(String modulePath)
        Configures the global properties for the current module.
        Parameters:
        modulePath - the path of the current module processed.
      • writePropertiesTable

        private static void writePropertiesTable​(org.apache.maven.doxia.module.xdoc.XdocSink sink)
                                          throws org.apache.maven.doxia.macro.MacroExecutionException
        Writes the properties table for the given module. Expects that the module has been processed with the ClassAndPropertiesSettersJavadocScraper before calling this method.
        Parameters:
        sink - the sink to write to.
        Throws:
        org.apache.maven.doxia.macro.MacroExecutionException - if an error occurs during writing.
      • writeTableHeaderRow

        private static void writeTableHeaderRow​(org.apache.maven.doxia.sink.Sink sink)
        Writes the table header row with 5 columns - name, description, type, default value, since.
        Parameters:
        sink - sink to write to.
      • writeTableHeaderCell

        private static void writeTableHeaderCell​(org.apache.maven.doxia.sink.Sink sink,
                                                 String text)
        Writes a table header cell with the given text.
        Parameters:
        sink - sink to write to.
        text - the text to write.
      • writeTablePropertiesRows

        private static void writeTablePropertiesRows​(org.apache.maven.doxia.sink.Sink sink)
                                              throws org.apache.maven.doxia.macro.MacroExecutionException
        Writes the rows of the table with the 5 columns - name, description, type, default value, since. Each row corresponds to a property of the module.
        Parameters:
        sink - sink to write to.
        Throws:
        org.apache.maven.doxia.macro.MacroExecutionException - if an error occurs during writing.
      • orderProperties

        private static List<StringorderProperties​(Set<String> properties)
        Reorder properties to always have the 'tokens' property last (if present).
        Parameters:
        properties - module properties.
        Returns:
        Collection of ordered properties.
      • writePropertyRow

        private static void writePropertyRow​(org.apache.maven.doxia.sink.Sink sink,
                                             String propertyName,
                                             DetailNode propertyJavadoc,
                                             Object instance,
                                             DetailNode moduleJavadoc)
                                      throws org.apache.maven.doxia.macro.MacroExecutionException
        Writes a table row with 5 columns for the given property - name, description, type, default value, since.
        Parameters:
        sink - sink to write to.
        propertyName - the name of the property.
        propertyJavadoc - the Javadoc of the property.
        instance - the instance of the module.
        moduleJavadoc - the Javadoc of the module.
        Throws:
        org.apache.maven.doxia.macro.MacroExecutionException - if an error occurs during writing.
      • writePropertyNameCell

        private static void writePropertyNameCell​(org.apache.maven.doxia.sink.Sink sink,
                                                  String propertyName)
        Writes a table cell with the given property name.
        Parameters:
        sink - sink to write to.
        propertyName - the name of the property.
      • writePropertyDescriptionCell

        private static void writePropertyDescriptionCell​(org.apache.maven.doxia.sink.Sink sink,
                                                         String propertyName,
                                                         DetailNode propertyJavadoc)
                                                  throws org.apache.maven.doxia.macro.MacroExecutionException
        Writes a table cell with the property description.
        Parameters:
        sink - sink to write to.
        propertyName - the name of the property.
        propertyJavadoc - the Javadoc of the property containing the description.
        Throws:
        org.apache.maven.doxia.macro.MacroExecutionException - if an error occurs during retrieval of the description.
      • writePropertyTypeCell

        private static void writePropertyTypeCell​(org.apache.maven.doxia.sink.Sink sink,
                                                  String propertyName,
                                                  Field field,
                                                  Object instance)
                                           throws org.apache.maven.doxia.macro.MacroExecutionException
        Writes a table cell with the property type.
        Parameters:
        sink - sink to write to.
        propertyName - the name of the property.
        field - the field of the property.
        instance - the instance of the module.
        Throws:
        org.apache.maven.doxia.macro.MacroExecutionException - if link to the property_types.html file cannot be constructed.
      • processLinkForTokenTypes

        private static void processLinkForTokenTypes​(org.apache.maven.doxia.sink.Sink sink)
                                              throws org.apache.maven.doxia.macro.MacroExecutionException
        Writes a formatted link for "TokenTypes" to the given sink.
        Parameters:
        sink - The output target where the link is written.
        Throws:
        org.apache.maven.doxia.macro.MacroExecutionException - If an error occurs during the link processing.
      • writeLink

        private static void writeLink​(org.apache.maven.doxia.sink.Sink sink)
                               throws org.apache.maven.doxia.macro.MacroExecutionException
        Write a link when all types of token supported.
        Parameters:
        sink - sink to write to.
        Throws:
        org.apache.maven.doxia.macro.MacroExecutionException - if link cannot be constructed.
      • writeTokensList

        private static void writeTokensList​(org.apache.maven.doxia.sink.Sink sink,
                                            List<String> tokens,
                                            String tokenTypesLink,
                                            boolean printDotAtTheEnd)
                                     throws org.apache.maven.doxia.macro.MacroExecutionException
        Write a list of tokens with links to the tokenTypesLink file.
        Parameters:
        sink - sink to write to.
        tokens - the list of tokens to write.
        tokenTypesLink - the link to the token types file.
        printDotAtTheEnd - defines if printing period symbols is required.
        Throws:
        org.apache.maven.doxia.macro.MacroExecutionException - if link to the tokenTypesLink file cannot be constructed.
      • writeLinkToToken

        private static void writeLinkToToken​(org.apache.maven.doxia.sink.Sink sink,
                                             String document,
                                             String tokenName)
                                      throws org.apache.maven.doxia.macro.MacroExecutionException
        Writes a link to the given token.
        Parameters:
        sink - sink to write to.
        document - the document to link to.
        tokenName - the name of the token.
        Throws:
        org.apache.maven.doxia.macro.MacroExecutionException - if link to the document file cannot be constructed.
      • writePropertyDefaultValueCell

        private static void writePropertyDefaultValueCell​(org.apache.maven.doxia.sink.Sink sink,
                                                          String propertyName,
                                                          Field field,
                                                          Object instance)
                                                   throws org.apache.maven.doxia.macro.MacroExecutionException
        Writes a table cell with the property default value.
        Parameters:
        sink - sink to write to.
        propertyName - the name of the property.
        field - the field of the property.
        instance - the instance of the module.
        Throws:
        org.apache.maven.doxia.macro.MacroExecutionException - if an error occurs during retrieval of the default value.
      • getDefaultValue

        private static String getDefaultValue​(String propertyName,
                                              Field field,
                                              Object instance)
                                       throws org.apache.maven.doxia.macro.MacroExecutionException
        Get the default value of the property.
        Parameters:
        propertyName - the name of the property.
        field - the field of the property.
        instance - the instance of the module.
        Returns:
        the default value of the property.
        Throws:
        org.apache.maven.doxia.macro.MacroExecutionException - if an error occurs during retrieval of the default value.
      • writePropertySinceVersionCell

        private static void writePropertySinceVersionCell​(org.apache.maven.doxia.sink.Sink sink,
                                                          String propertyName,
                                                          DetailNode moduleJavadoc,
                                                          DetailNode propertyJavadoc)
                                                   throws org.apache.maven.doxia.macro.MacroExecutionException
        Writes a table cell with the property since version.
        Parameters:
        sink - sink to write to.
        propertyName - the name of the property.
        moduleJavadoc - the Javadoc of the module.
        propertyJavadoc - the Javadoc of the property containing the since version.
        Throws:
        org.apache.maven.doxia.macro.MacroExecutionException - if an error occurs during retrieval of the since version.