Class ExampleMacro

java.lang.Object
org.apache.maven.doxia.macro.AbstractMacro
com.puppycrawl.tools.checkstyle.site.ExampleMacro
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="example") public class ExampleMacro extends org.apache.maven.doxia.macro.AbstractMacro
A macro that inserts a snippet of code or configuration from a file.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private static final String
    Ending delimiter for code snippets.
    private static final String
    Starting delimiter for code snippets.
    private List<String>
    The line contents of the last file.
    private String
    The path of the last file.
    private static final String
    Ending delimiter for config snippets.
    private static final String
    Starting delimiter for config snippets.
    private static final Pattern
    The pattern of xml code blocks.

    Fields inherited from interface org.apache.maven.doxia.macro.Macro

    EOL, ROLE
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    private static String
    escapeHtml(String snippet)
    Escapes HTML special characters in the snippet.
    void
    execute(org.apache.maven.doxia.sink.Sink sink, org.apache.maven.doxia.macro.MacroRequest request)
     
    private static String
    Extract a code snippet from the given lines.
    private static String
    Extract a configuration snippet from the given lines.
    private static boolean
    isXml(String snippet)
    Determines if the given snippet is likely an XML fragment.
    private static List<String>
    Read the file at the given path and returns its contents as a list of lines.
    private static void
    writeSnippet(org.apache.maven.doxia.sink.Sink sink, String snippet)
    Writes the given snippet inside a formatted source block.

    Methods inherited from class org.apache.maven.doxia.macro.AbstractMacro

    enableLogging, getAttributesFromMap, getLog, required

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

  • Method Details

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

      private static List<String> readFile(String path) throws org.apache.maven.doxia.macro.MacroExecutionException
      Read the file at the given path and returns its contents as a list of lines.
      Parameters:
      path - the path to the file to read.
      Returns:
      the contents of the file as a list of lines.
      Throws:
      org.apache.maven.doxia.macro.MacroExecutionException - if the file could not be read.
    • getConfigSnippet

      private static String getConfigSnippet(Collection<String> lines)
      Extract a configuration snippet from the given lines. Config delimiters use the whole line for themselves and have no indentation. We use equals() instead of contains() to be more strict because some examples contain those delimiters.
      Parameters:
      lines - the lines to extract the snippet from.
      Returns:
      the configuration snippet.
    • getCodeSnippet

      private static String getCodeSnippet(Collection<String> lines)
      Extract a code snippet from the given lines. Code delimiters can be indented, so we use contains() instead of equals().
      Parameters:
      lines - the lines to extract the snippet from.
      Returns:
      the code snippet.
    • writeSnippet

      private static void writeSnippet(org.apache.maven.doxia.sink.Sink sink, String snippet)
      Writes the given snippet inside a formatted source block.
      Parameters:
      sink - the sink to write to.
      snippet - the snippet to write.
    • escapeHtml

      private static String escapeHtml(String snippet)
      Escapes HTML special characters in the snippet.
      Parameters:
      snippet - the snippet to escape.
      Returns:
      the escaped snippet.
    • isXml

      private static boolean isXml(String snippet)
      Determines if the given snippet is likely an XML fragment.
      Parameters:
      snippet - the code snippet to analyze.
      Returns:
      true if the snippet appears to be XML, otherwise false.