From 4bb116125e38424b1c6162b237316dfa827d4561 Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Sat, 7 Sep 2019 15:16:43 +0200 Subject: [PATCH] [scala] Small improvements * The system property to select the language version for the tokenizer used by CPD is called now "net.sourceforge.pmd.scala.version" * The node ASTSource is marked as RootNode * Removed (deprecated) DumpFacade solution * Removed old rulesets.properties --- .../sourceforge/pmd/cpd/ScalaTokenizer.java | 2 +- .../pmd/lang/scala/ScalaLanguageHandler.java | 17 ---- .../pmd/lang/scala/ast/DumpFacade.java | 80 ------------------- .../pmd/lang/scala/ast/nodes/ASTSource.java | 3 +- .../rulesets/scala/rulesets.properties | 18 ----- 5 files changed, 3 insertions(+), 117 deletions(-) delete mode 100644 pmd-scala/src/main/java/net/sourceforge/pmd/lang/scala/ast/DumpFacade.java delete mode 100644 pmd-scala/src/main/resources/rulesets/scala/rulesets.properties diff --git a/pmd-scala/src/main/java/net/sourceforge/pmd/cpd/ScalaTokenizer.java b/pmd-scala/src/main/java/net/sourceforge/pmd/cpd/ScalaTokenizer.java index ce46617589..7706e48d31 100644 --- a/pmd-scala/src/main/java/net/sourceforge/pmd/cpd/ScalaTokenizer.java +++ b/pmd-scala/src/main/java/net/sourceforge/pmd/cpd/ScalaTokenizer.java @@ -29,7 +29,7 @@ public class ScalaTokenizer implements Tokenizer { * Denotes the version of the scala dialect to use. Based on the values in * {@linkplain ScalaLanguageModule#getVersions()} */ - public static final String SCALA_VERSION_PROPERTY = "scala_version"; + public static final String SCALA_VERSION_PROPERTY = "net.sourceforge.pmd.scala.version"; private final Dialect dialect; /** diff --git a/pmd-scala/src/main/java/net/sourceforge/pmd/lang/scala/ScalaLanguageHandler.java b/pmd-scala/src/main/java/net/sourceforge/pmd/lang/scala/ScalaLanguageHandler.java index c95c975ddc..e5275baac4 100644 --- a/pmd-scala/src/main/java/net/sourceforge/pmd/lang/scala/ScalaLanguageHandler.java +++ b/pmd-scala/src/main/java/net/sourceforge/pmd/lang/scala/ScalaLanguageHandler.java @@ -4,15 +4,9 @@ package net.sourceforge.pmd.lang.scala; -import java.io.Writer; - import net.sourceforge.pmd.lang.AbstractLanguageVersionHandler; import net.sourceforge.pmd.lang.ParserOptions; -import net.sourceforge.pmd.lang.VisitorStarter; -import net.sourceforge.pmd.lang.ast.Node; import net.sourceforge.pmd.lang.rule.RuleViolationFactory; -import net.sourceforge.pmd.lang.scala.ast.DumpFacade; -import net.sourceforge.pmd.lang.scala.ast.ScalaNode; import net.sourceforge.pmd.lang.scala.rule.ScalaRuleViolationFactory; import scala.meta.Dialect; @@ -52,15 +46,4 @@ public class ScalaLanguageHandler extends AbstractLanguageVersionHandler { public ScalaParser getParser(ParserOptions parserOptions) { return new ScalaParser(dialect, parserOptions); } - - @Override - public VisitorStarter getDumpFacade(final Writer writer, final String prefix, final boolean recurse) { - return new VisitorStarter() { - @Override - public void start(Node rootNode) { - new DumpFacade().dump(writer, prefix, recurse, (ScalaNode) rootNode); - } - }; - } - } diff --git a/pmd-scala/src/main/java/net/sourceforge/pmd/lang/scala/ast/DumpFacade.java b/pmd-scala/src/main/java/net/sourceforge/pmd/lang/scala/ast/DumpFacade.java deleted file mode 100644 index 50772fb342..0000000000 --- a/pmd-scala/src/main/java/net/sourceforge/pmd/lang/scala/ast/DumpFacade.java +++ /dev/null @@ -1,80 +0,0 @@ -/** - * BSD-style license; for more info see http://pmd.sourceforge.net/license.html - */ - -package net.sourceforge.pmd.lang.scala.ast; - -import java.io.PrintWriter; -import java.io.Writer; -import java.util.Iterator; - -import net.sourceforge.pmd.lang.ast.xpath.Attribute; - -/** - * A Dump Facade for Scala for testing purposes. - */ -public class DumpFacade extends ScalaParserVisitorAdapter { - private PrintWriter writer; - private boolean recurse; - - /** - * Write the nodes of the tree to the given writer recursively. - * - * @param outWriter - * the writer to write the tree data to - * @param prefix - * a string prefix to use before each line in the writer - * @param shouldRecurse - * should this recurse below the root node? - * @param node - * the node to start with. Not necessarily a tree root. - */ - public void dump(Writer outWriter, String prefix, boolean shouldRecurse, ScalaNode node) { - this.writer = outWriter instanceof PrintWriter ? (PrintWriter) outWriter : new PrintWriter(outWriter); - this.recurse = shouldRecurse; - this.visit(node, prefix); - this.writer.flush(); - } - - @Override - public String visit(ScalaNode node, String data) { - dump(node, (String) data); - if (recurse) { - return super.visit(node, data + " "); - } else { - return data; - } - } - - private void dump(ScalaNode node, String prefix) { - writer.print(prefix); - writer.print(node.getXPathNodeName()); - - String image = node.getImage(); - - String attrs = null; - Iterator attributeIter = node.getXPathAttributesIterator(); - if (attributeIter.hasNext()) { - StringBuilder sb = new StringBuilder(); - while (attributeIter.hasNext()) { - Attribute attr = attributeIter.next(); - sb.append(attr.getName()).append("=").append(attr.getStringValue()).append(", "); - } - if (sb.length() != 0) { - attrs = sb.delete(sb.length() - 2, sb.length()).toString(); - } - } - - if (image != null) { - writer.print(":" + image); - } - - if (attrs != null) { - writer.print("["); - writer.print(attrs); - writer.print("]"); - } - - writer.println(); - } -} diff --git a/pmd-scala/src/main/java/net/sourceforge/pmd/lang/scala/ast/nodes/ASTSource.java b/pmd-scala/src/main/java/net/sourceforge/pmd/lang/scala/ast/nodes/ASTSource.java index bd45943045..75710edfee 100644 --- a/pmd-scala/src/main/java/net/sourceforge/pmd/lang/scala/ast/nodes/ASTSource.java +++ b/pmd-scala/src/main/java/net/sourceforge/pmd/lang/scala/ast/nodes/ASTSource.java @@ -4,6 +4,7 @@ package net.sourceforge.pmd.lang.scala.ast.nodes; +import net.sourceforge.pmd.lang.ast.RootNode; import net.sourceforge.pmd.lang.scala.ast.ScalaParserVisitor; import scala.meta.Source; @@ -11,7 +12,7 @@ import scala.meta.Source; /** * The ASTSource node implementation. */ -public class ASTSource extends AbstractScalaNode { +public class ASTSource extends AbstractScalaNode implements RootNode { /** * Create the AST node for this Scala node. diff --git a/pmd-scala/src/main/resources/rulesets/scala/rulesets.properties b/pmd-scala/src/main/resources/rulesets/scala/rulesets.properties deleted file mode 100644 index 3383b4fece..0000000000 --- a/pmd-scala/src/main/resources/rulesets/scala/rulesets.properties +++ /dev/null @@ -1,18 +0,0 @@ -# -# BSD-style license; for more info see http://pmd.sourceforge.net/license.html -# - -rulesets.filenames= - -# -# categories without rules -# -# category/scala/bestpractices.xml -# category/scala/codestyle.xml -# category/scala/design.xml -# category/scala/documentation.xml -# category/scala/errorprone.xml -# category/scala/multithreading.xml -# category/scala/performance.xml -# category/scala/security.xml -