Fix compile errors for CPD only languages
This commit is contained in:
@ -71,7 +71,16 @@ public final class LanguageRegistry {
|
||||
// TODO This is unnecessary, if the incomplete language modules have been removed.
|
||||
List<Language> languages = new ArrayList<>();
|
||||
for (Language language : getInstance().languages.values()) {
|
||||
if (language.getRuleChainVisitorClass() != null) {
|
||||
LanguageVersionHandler languageVersionHandler = language.getDefaultVersion().getLanguageVersionHandler();
|
||||
boolean pmdSupported = false;
|
||||
|
||||
if (languageVersionHandler != null) {
|
||||
ParserOptions defaultParserOptions = languageVersionHandler.getDefaultParserOptions();
|
||||
Parser parser = languageVersionHandler.getParser(defaultParserOptions);
|
||||
pmdSupported = parser.canParse();
|
||||
}
|
||||
|
||||
if (pmdSupported) {
|
||||
languages.add(language);
|
||||
}
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ public class CppLanguageModule extends BaseLanguageModule {
|
||||
* extensions for C++.
|
||||
*/
|
||||
public CppLanguageModule() {
|
||||
super(NAME, null, TERSE_NAME, null, "h", "c", "cpp", "cxx", "cc", "C");
|
||||
super(NAME, null, TERSE_NAME, "h", "c", "cpp", "cxx", "cc", "C");
|
||||
addVersion("", new CppHandler(), true);
|
||||
}
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ public class CsLanguageModule extends BaseLanguageModule {
|
||||
* Create a new instance of C# Language Module.
|
||||
*/
|
||||
public CsLanguageModule() {
|
||||
super(NAME, null, TERSE_NAME, null, "cs");
|
||||
super(NAME, null, TERSE_NAME, "cs");
|
||||
addVersion("", null, true);
|
||||
}
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ public class FortranLanguageModule extends BaseLanguageModule {
|
||||
* Creates a new instance of {@link FortranLanguageModule}
|
||||
*/
|
||||
public FortranLanguageModule() {
|
||||
super(NAME, null, TERSE_NAME, null, "for", "f", "f66", "f77", "f90");
|
||||
super(NAME, null, TERSE_NAME, "for", "f", "f66", "f77", "f90");
|
||||
addVersion("", null, true);
|
||||
}
|
||||
|
||||
|
@ -20,7 +20,7 @@ public class GoLanguageModule extends BaseLanguageModule {
|
||||
* Create a new instance of Golang Language Module.
|
||||
*/
|
||||
public GoLanguageModule() {
|
||||
super(NAME, null, TERSE_NAME, null, "go");
|
||||
super(NAME, null, TERSE_NAME, "go");
|
||||
addVersion("1", null, true);
|
||||
}
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ public class GroovyLanguageModule extends BaseLanguageModule {
|
||||
* Create a new instance of Groovy Language Module.
|
||||
*/
|
||||
public GroovyLanguageModule() {
|
||||
super(NAME, null, TERSE_NAME, null, "groovy");
|
||||
super(NAME, null, TERSE_NAME, "groovy");
|
||||
addVersion("", null, true);
|
||||
}
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ public class MatlabLanguageModule extends BaseLanguageModule {
|
||||
* file extensions for Matlab.
|
||||
*/
|
||||
public MatlabLanguageModule() {
|
||||
super(NAME, null, TERSE_NAME, null, "m");
|
||||
super(NAME, null, TERSE_NAME, "m");
|
||||
addVersion("", new MatlabHandler(), true);
|
||||
}
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ public class ObjectiveCLanguageModule extends BaseLanguageModule {
|
||||
* default file extensions for Objective-C.
|
||||
*/
|
||||
public ObjectiveCLanguageModule() {
|
||||
super(NAME, null, TERSE_NAME, null, "h", "m");
|
||||
super(NAME, null, TERSE_NAME, "h", "m");
|
||||
addVersion("", new ObjectiveCHandler(), true);
|
||||
}
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ public class PhpLanguageModule extends BaseLanguageModule {
|
||||
* Create a new instance of the PHP Language Module.
|
||||
*/
|
||||
public PhpLanguageModule() {
|
||||
super(NAME, "PHP", TERSE_NAME, null, "php", "class");
|
||||
super(NAME, "PHP", TERSE_NAME, "php", "class");
|
||||
addVersion("", null, true);
|
||||
}
|
||||
|
||||
|
@ -24,7 +24,7 @@ public class PythonLanguageModule extends BaseLanguageModule {
|
||||
* file extensions for Python.
|
||||
*/
|
||||
public PythonLanguageModule() {
|
||||
super(NAME, null, TERSE_NAME, null, "py");
|
||||
super(NAME, null, TERSE_NAME, "py");
|
||||
addVersion("", new PythonHandler(), true);
|
||||
}
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ public class RubyLanguageModule extends BaseLanguageModule {
|
||||
* Creates a new Ruby Language Module instance.
|
||||
*/
|
||||
public RubyLanguageModule() {
|
||||
super(NAME, null, TERSE_NAME, null, "rb", "cgi", "class");
|
||||
super(NAME, null, TERSE_NAME, "rb", "cgi", "class");
|
||||
addVersion("", null, true);
|
||||
}
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ public class SwiftLanguageModule extends BaseLanguageModule {
|
||||
* Create a new instance of Swift Language Module.
|
||||
*/
|
||||
public SwiftLanguageModule() {
|
||||
super(NAME, null, TERSE_NAME, null, "swift");
|
||||
super(NAME, null, TERSE_NAME, "swift");
|
||||
addVersion("", null, true);
|
||||
}
|
||||
}
|
||||
|
@ -19,6 +19,9 @@ import net.sourceforge.pmd.ant.SourceLanguage;
|
||||
import net.sourceforge.pmd.lang.Language;
|
||||
import net.sourceforge.pmd.lang.LanguageRegistry;
|
||||
import net.sourceforge.pmd.lang.LanguageVersion;
|
||||
import net.sourceforge.pmd.lang.LanguageVersionHandler;
|
||||
import net.sourceforge.pmd.lang.Parser;
|
||||
import net.sourceforge.pmd.lang.ParserOptions;
|
||||
import net.sourceforge.pmd.util.ResourceLoader;
|
||||
|
||||
/**
|
||||
@ -103,6 +106,18 @@ public class AbstractLanguageVersionTest {
|
||||
assertEquals(expected, languageVersion);
|
||||
}
|
||||
|
||||
private boolean supportsRules() {
|
||||
if (expected == null || expected.getLanguage().getRuleChainVisitorClass() == null
|
||||
|| expected.getLanguageVersionHandler() == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
LanguageVersionHandler languageVersionHandler = expected.getLanguageVersionHandler();
|
||||
ParserOptions defaultParserOptions = languageVersionHandler.getDefaultParserOptions();
|
||||
Parser parser = languageVersionHandler.getParser(defaultParserOptions);
|
||||
return parser.canParse();
|
||||
}
|
||||
|
||||
/**
|
||||
* Makes sure, that for each language a "categories.properties" file exists.
|
||||
*
|
||||
@ -112,7 +127,7 @@ public class AbstractLanguageVersionTest {
|
||||
@Test
|
||||
public void testRegisteredRulesets() throws Exception {
|
||||
// only check for languages, that support rules
|
||||
if (expected == null || expected.getLanguage().getRuleChainVisitorClass() == null) {
|
||||
if (!supportsRules()) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user