From 529d2da0549a9d085445b3ecd5c1d0691ced3c57 Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Fri, 27 Apr 2018 21:56:45 +0200 Subject: [PATCH] [doc] Document the delimiter for multi valued properties --- .../pmd/docs/RuleDocGenerator.java | 14 +++++++++++-- pmd-doc/src/test/resources/expected/sample.md | 20 +++++++++---------- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/pmd-doc/src/main/java/net/sourceforge/pmd/docs/RuleDocGenerator.java b/pmd-doc/src/main/java/net/sourceforge/pmd/docs/RuleDocGenerator.java index a739332fc3..ba2cc61918 100644 --- a/pmd-doc/src/main/java/net/sourceforge/pmd/docs/RuleDocGenerator.java +++ b/pmd-doc/src/main/java/net/sourceforge/pmd/docs/RuleDocGenerator.java @@ -39,6 +39,7 @@ import net.sourceforge.pmd.RuleSetNotFoundException; import net.sourceforge.pmd.lang.Language; import net.sourceforge.pmd.lang.rule.RuleReference; import net.sourceforge.pmd.lang.rule.XPathRule; +import net.sourceforge.pmd.properties.MultiValuePropertyDescriptor; import net.sourceforge.pmd.properties.PropertyDescriptor; public class RuleDocGenerator { @@ -421,8 +422,8 @@ public class RuleDocGenerator { if (!properties.isEmpty()) { lines.add("**This rule has the following properties:**"); lines.add(""); - lines.add("|Name|Default Value|Description|"); - lines.add("|----|-------------|-----------|"); + lines.add("|Name|Default Value|Description|Multivalued|"); + lines.add("|----|-------------|-----------|-----------|"); for (PropertyDescriptor propertyDescriptor : properties) { String description = propertyDescriptor.description(); if (description != null && description.toLowerCase(Locale.ROOT).startsWith(DEPRECATED_RULE_PROPERTY_MARKER)) { @@ -441,9 +442,18 @@ public class RuleDocGenerator { } } + String multiValued = "no"; + if (propertyDescriptor.isMultiValue()) { + MultiValuePropertyDescriptor multiValuePropertyDescriptor = + (MultiValuePropertyDescriptor) propertyDescriptor; + multiValued = "yes. Delimiter is '" + + multiValuePropertyDescriptor.multiValueDelimiter() + "'"; + } + lines.add("|" + propertyDescriptor.name() + "|" + defaultValue.replace("|", "\\|") + "|" + description + + "|" + multiValued.replace("|", "\\|") + "|"); } lines.add(""); diff --git a/pmd-doc/src/test/resources/expected/sample.md b/pmd-doc/src/test/resources/expected/sample.md index 7898818b5f..0a1a49c7d3 100644 --- a/pmd-doc/src/test/resources/expected/sample.md +++ b/pmd-doc/src/test/resources/expected/sample.md @@ -60,11 +60,11 @@ public class JumbledIncrementerRule1 { **This rule has the following properties:** -|Name|Default Value|Description| -|----|-------------|-----------| -|sampleAdditionalProperty|the value|This is a additional property for tests| -|sampleMultiStringProperty|Value1\|Value2|Test property with multiple strings| -|sampleDeprecatedProperty|test|Deprecated This is a sample deprecated property for tests| +|Name|Default Value|Description|Multivalued| +|----|-------------|-----------|-----------| +|sampleAdditionalProperty|the value|This is a additional property for tests|no| +|sampleMultiStringProperty|Value1\|Value2|Test property with multiple strings|yes. Delimiter is '\|'| +|sampleDeprecatedProperty|test|Deprecated This is a sample deprecated property for tests|no| **Use this rule by referencing it:** ``` xml @@ -198,11 +198,11 @@ public class JumbledIncrementerRule1 { **This rule has the following properties:** -|Name|Default Value|Description| -|----|-------------|-----------| -|sampleAdditionalProperty|the value|This is a additional property for tests| -|sampleMultiStringProperty|Value1\|Value2|Test property with multiple strings| -|sampleDeprecatedProperty|test|Deprecated This is a sample deprecated property for tests| +|Name|Default Value|Description|Multivalued| +|----|-------------|-----------|-----------| +|sampleAdditionalProperty|the value|This is a additional property for tests|no| +|sampleMultiStringProperty|Value1\|Value2|Test property with multiple strings|yes. Delimiter is '\|'| +|sampleDeprecatedProperty|test|Deprecated This is a sample deprecated property for tests|no| **Use this rule by referencing it:** ``` xml