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
Modifier and TypeFieldDescriptionprivate static final String
Ending delimiter for code snippets.private static final String
Starting delimiter for code snippets.private static final String
Eight whitespace characters.The line contents of the last file.private String
The path of the last file.private static final String
Newline character.private static final String
Ending delimiter for config snippets.private static final String
Starting delimiter for config snippets.Fields inherited from interface org.apache.maven.doxia.macro.Macro
EOL, ROLE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
execute
(org.apache.maven.doxia.sink.Sink sink, org.apache.maven.doxia.macro.MacroRequest request) private static String
getCodeSnippet
(Collection<String> lines) Extract a code snippet from the given lines.private static String
getConfigSnippet
(Collection<String> lines) Extract a configuration snippet from the given lines.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) Write the given snippet to the file inside a source block.Methods inherited from class org.apache.maven.doxia.macro.AbstractMacro
enableLogging, getAttributesFromMap, getLog, required
-
Field Details
-
XML_CONFIG_START
Starting delimiter for config snippets.- See Also:
-
XML_CONFIG_END
Ending delimiter for config snippets.- See Also:
-
CODE_SNIPPET_START
Starting delimiter for code snippets.- See Also:
-
CODE_SNIPPET_END
Ending delimiter for code snippets.- See Also:
-
NEWLINE
Newline character. -
INDENTATION
Eight whitespace characters. All example source tags are indented 8 spaces.- See Also:
-
lastPath
The path of the last file. -
lastLines
The line contents of the last file.
-
-
Constructor Details
-
ExampleMacro
public ExampleMacro()
-
-
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
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
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
Write the given snippet to the file inside a source block.- Parameters:
sink
- the sink to write to.snippet
- the snippet to write.
-