All language modules: getInstance()

Use a consistent implementation of getInstance().
Now all modules resolve against the LanguageRegistry.
This commit is contained in:
Andreas Dangel
2023-08-24 15:30:49 +02:00
parent 80856732cc
commit 32afa53f8e
44 changed files with 232 additions and 154 deletions

View File

@ -6,6 +6,7 @@ package net.sourceforge.pmd.lang.ecmascript;
import net.sourceforge.pmd.cpd.Tokenizer;
import net.sourceforge.pmd.lang.LanguagePropertyBundle;
import net.sourceforge.pmd.lang.LanguageRegistry;
import net.sourceforge.pmd.lang.ecmascript.ast.EcmascriptParser;
import net.sourceforge.pmd.lang.ecmascript.cpd.EcmascriptTokenizer;
import net.sourceforge.pmd.lang.impl.SimpleLanguageModuleBase;
@ -14,13 +15,11 @@ import net.sourceforge.pmd.lang.impl.SimpleLanguageModuleBase;
* Created by christoferdutz on 20.09.14.
*/
public class EcmascriptLanguageModule extends SimpleLanguageModuleBase {
static final String ID = "ecmascript";
static final String NAME = "JavaScript";
static final String TERSE_NAME = "ecmascript";
private static final EcmascriptLanguageModule INSTANCE = new EcmascriptLanguageModule();
public EcmascriptLanguageModule() {
super(LanguageMetadata.withId(TERSE_NAME).name(NAME).extensions("js")
super(LanguageMetadata.withId(ID).name(NAME).extensions("js")
.addVersion("3")
.addVersion("5")
.addVersion("6", "ES6", "ES2015")
@ -31,7 +30,7 @@ public class EcmascriptLanguageModule extends SimpleLanguageModuleBase {
}
public static EcmascriptLanguageModule getInstance() {
return INSTANCE;
return (EcmascriptLanguageModule) LanguageRegistry.PMD.getLanguageById(ID);
}
@Override

View File

@ -14,19 +14,20 @@ import net.sourceforge.pmd.lang.typescript.cpd.TypeScriptTokenizer;
* @author pguyot@kallisys.net
*/
public class TsLanguageModule extends CpdOnlyLanguageModuleBase {
private static final String ID = "typescript";
public TsLanguageModule() {
super(LanguageMetadata.withId("typescript")
super(LanguageMetadata.withId(ID)
.name("TypeScript")
.extensions("ts"));
}
public static TsLanguageModule getInstance() {
return (TsLanguageModule) LanguageRegistry.CPD.getLanguageById(ID);
}
@Override
public Tokenizer createCpdTokenizer(LanguagePropertyBundle bundle) {
return new TypeScriptTokenizer();
}
public static TsLanguageModule getInstance() {
return (TsLanguageModule) LanguageRegistry.CPD.getLanguageById("typescript");
}
}

View File

@ -13,7 +13,7 @@ class LanguageVersionTest extends AbstractLanguageVersionTest {
static Collection<TestDescriptor> data() {
return Arrays.asList(
new TestDescriptor(EcmascriptLanguageModule.NAME, EcmascriptLanguageModule.TERSE_NAME, "9",
new TestDescriptor(EcmascriptLanguageModule.NAME, EcmascriptLanguageModule.ID, "9",
getLanguage(EcmascriptLanguageModule.NAME).getDefaultVersion()));
}
}