Remove ImmutableLanguage
This commit is contained in:
@ -12,10 +12,9 @@ import net.sourceforge.pmd.lang.apex.ApexParserOptions;
|
||||
import net.sourceforge.pmd.lang.apex.ast.ApexParserVisitor;
|
||||
import net.sourceforge.pmd.lang.ast.Node;
|
||||
import net.sourceforge.pmd.lang.rule.AbstractRule;
|
||||
import net.sourceforge.pmd.lang.rule.ImmutableLanguage;
|
||||
|
||||
public abstract class AbstractApexRule extends AbstractRule
|
||||
implements ApexParserVisitor, ImmutableLanguage {
|
||||
implements ApexParserVisitor {
|
||||
|
||||
public AbstractApexRule() {
|
||||
super.setLanguage(LanguageRegistry.getLanguage(ApexLanguageModule.NAME));
|
||||
|
@ -31,7 +31,6 @@ import org.w3c.dom.Text;
|
||||
|
||||
import net.sourceforge.pmd.lang.Language;
|
||||
import net.sourceforge.pmd.lang.LanguageVersion;
|
||||
import net.sourceforge.pmd.lang.rule.ImmutableLanguage;
|
||||
import net.sourceforge.pmd.lang.rule.RuleReference;
|
||||
import net.sourceforge.pmd.lang.rule.XPathRule;
|
||||
import net.sourceforge.pmd.properties.PropertyDescriptor;
|
||||
@ -190,13 +189,13 @@ public class RuleSetWriter {
|
||||
propertyDescriptors, propertiesByPropertyDescriptor, examples);
|
||||
}
|
||||
} else {
|
||||
return createSingleRuleElement(rule instanceof ImmutableLanguage ? null : rule.getLanguage(),
|
||||
rule.getMinimumLanguageVersion(), rule.getMaximumLanguageVersion(), rule.isDeprecated(),
|
||||
rule.getName(), rule.getSince(), null, rule.getMessage(), rule.getExternalInfoUrl(),
|
||||
rule.getRuleClass(),
|
||||
rule.getDescription(),
|
||||
rule.getPriority(), rule.getPropertyDescriptors(), rule.getPropertiesByPropertyDescriptor(),
|
||||
rule.getExamples());
|
||||
return createSingleRuleElement(rule.getLanguage(),
|
||||
rule.getMinimumLanguageVersion(), rule.getMaximumLanguageVersion(), rule.isDeprecated(),
|
||||
rule.getName(), rule.getSince(), null, rule.getMessage(), rule.getExternalInfoUrl(),
|
||||
rule.getRuleClass(),
|
||||
rule.getDescription(),
|
||||
rule.getPriority(), rule.getPropertyDescriptors(), rule.getPropertiesByPropertyDescriptor(),
|
||||
rule.getExamples());
|
||||
}
|
||||
}
|
||||
|
||||
@ -212,7 +211,8 @@ public class RuleSetWriter {
|
||||
String description, RulePriority priority, List<PropertyDescriptor<?>> propertyDescriptors,
|
||||
Map<PropertyDescriptor<?>, Object> propertiesByPropertyDescriptor, List<String> examples) {
|
||||
Element ruleElement = createRuleElement();
|
||||
if (language != null) {
|
||||
// language is now a required attribute, unless this is a rule reference
|
||||
if (clazz != null) {
|
||||
ruleElement.setAttribute("language", language.getTerseName());
|
||||
}
|
||||
if (minimumLanguageVersion != null) {
|
||||
|
@ -93,7 +93,7 @@ public abstract class AbstractRule extends AbstractPropertySource implements Rul
|
||||
|
||||
@Override
|
||||
public void setLanguage(Language language) {
|
||||
if (this.language != null && this instanceof ImmutableLanguage && !this.language.equals(language)) {
|
||||
if (this.language != null && !this.language.equals(language)) {
|
||||
throw new UnsupportedOperationException("The Language for Rule class " + this.getClass().getName()
|
||||
+ " is immutable and cannot be changed.");
|
||||
}
|
||||
|
@ -1,17 +0,0 @@
|
||||
/**
|
||||
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
|
||||
*/
|
||||
|
||||
package net.sourceforge.pmd.lang.rule;
|
||||
|
||||
/**
|
||||
* This is a tag interface to indicate that a Rule implementation class does not
|
||||
* support changes to it's Language. The Language is integral to the proper
|
||||
* functioning of the Rule.
|
||||
*
|
||||
* @deprecated No rule supports a change to their language. This will
|
||||
* be made the default behaviour with PMD 7.0.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public interface ImmutableLanguage {
|
||||
}
|
@ -18,7 +18,6 @@ import net.sourceforge.pmd.lang.java.ast.ASTImportDeclaration;
|
||||
import net.sourceforge.pmd.lang.java.ast.JavaParserVisitor;
|
||||
import net.sourceforge.pmd.lang.java.internal.JavaProcessingStage;
|
||||
import net.sourceforge.pmd.lang.rule.AbstractRule;
|
||||
import net.sourceforge.pmd.lang.rule.ImmutableLanguage;
|
||||
|
||||
|
||||
/**
|
||||
@ -28,7 +27,7 @@ import net.sourceforge.pmd.lang.rule.ImmutableLanguage;
|
||||
* TODO add documentation
|
||||
*
|
||||
*/
|
||||
public abstract class AbstractJavaRule extends AbstractRule implements JavaParserVisitor, ImmutableLanguage {
|
||||
public abstract class AbstractJavaRule extends AbstractRule implements JavaParserVisitor {
|
||||
|
||||
public AbstractJavaRule() {
|
||||
super.setLanguage(LanguageRegistry.getLanguage(JavaLanguageModule.NAME));
|
||||
|
@ -13,12 +13,11 @@ import net.sourceforge.pmd.lang.ecmascript.EcmascriptParserOptions;
|
||||
import net.sourceforge.pmd.lang.ecmascript.EcmascriptParserOptions.Version;
|
||||
import net.sourceforge.pmd.lang.ecmascript.ast.EcmascriptParserVisitor;
|
||||
import net.sourceforge.pmd.lang.rule.AbstractRule;
|
||||
import net.sourceforge.pmd.lang.rule.ImmutableLanguage;
|
||||
import net.sourceforge.pmd.properties.PropertyDescriptor;
|
||||
|
||||
|
||||
public abstract class AbstractEcmascriptRule extends AbstractRule
|
||||
implements EcmascriptParserVisitor, ImmutableLanguage {
|
||||
implements EcmascriptParserVisitor {
|
||||
|
||||
private static final PropertyDescriptor<Boolean> RECORDING_COMMENTS_DESCRIPTOR = EcmascriptParserOptions.RECORDING_COMMENTS_DESCRIPTOR;
|
||||
private static final PropertyDescriptor<Boolean> RECORDING_LOCAL_JSDOC_COMMENTS_DESCRIPTOR = EcmascriptParserOptions.RECORDING_LOCAL_JSDOC_COMMENTS_DESCRIPTOR;
|
||||
|
@ -10,9 +10,8 @@ import net.sourceforge.pmd.lang.ast.Node;
|
||||
import net.sourceforge.pmd.lang.jsp.JspLanguageModule;
|
||||
import net.sourceforge.pmd.lang.jsp.ast.JspParserVisitor;
|
||||
import net.sourceforge.pmd.lang.rule.AbstractRule;
|
||||
import net.sourceforge.pmd.lang.rule.ImmutableLanguage;
|
||||
|
||||
public abstract class AbstractJspRule extends AbstractRule implements JspParserVisitor, ImmutableLanguage {
|
||||
public abstract class AbstractJspRule extends AbstractRule implements JspParserVisitor {
|
||||
|
||||
public AbstractJspRule() {
|
||||
super.setLanguage(LanguageRegistry.getLanguage(JspLanguageModule.NAME));
|
||||
|
@ -13,12 +13,11 @@ import net.sourceforge.pmd.lang.modelica.ast.ModelicaNode;
|
||||
import net.sourceforge.pmd.lang.modelica.ast.ModelicaParserVisitor;
|
||||
import net.sourceforge.pmd.lang.modelica.internal.ModelicaProcessingStage;
|
||||
import net.sourceforge.pmd.lang.rule.AbstractRule;
|
||||
import net.sourceforge.pmd.lang.rule.ImmutableLanguage;
|
||||
|
||||
/**
|
||||
* Base class for rules for Modelica language.
|
||||
*/
|
||||
public abstract class AbstractModelicaRule extends AbstractRule implements ModelicaParserVisitor, ImmutableLanguage {
|
||||
public abstract class AbstractModelicaRule extends AbstractRule implements ModelicaParserVisitor {
|
||||
public AbstractModelicaRule() {
|
||||
super.setLanguage(LanguageRegistry.getLanguage(ModelicaLanguageModule.NAME));
|
||||
}
|
||||
|
@ -22,9 +22,8 @@ import net.sourceforge.pmd.lang.plsql.ast.ExecutableCode;
|
||||
import net.sourceforge.pmd.lang.plsql.ast.PLSQLNode;
|
||||
import net.sourceforge.pmd.lang.plsql.ast.PLSQLParserVisitor;
|
||||
import net.sourceforge.pmd.lang.rule.AbstractRule;
|
||||
import net.sourceforge.pmd.lang.rule.ImmutableLanguage;
|
||||
|
||||
public abstract class AbstractPLSQLRule extends AbstractRule implements PLSQLParserVisitor, ImmutableLanguage {
|
||||
public abstract class AbstractPLSQLRule extends AbstractRule implements PLSQLParserVisitor {
|
||||
private static final Logger LOGGER = Logger.getLogger(AbstractPLSQLRule.class.getName());
|
||||
private static final String CLASS_NAME = AbstractPLSQLRule.class.getName();
|
||||
|
||||
|
@ -8,12 +8,11 @@ import net.sourceforge.pmd.RuleContext;
|
||||
import net.sourceforge.pmd.lang.LanguageRegistry;
|
||||
import net.sourceforge.pmd.lang.ast.Node;
|
||||
import net.sourceforge.pmd.lang.rule.AbstractRule;
|
||||
import net.sourceforge.pmd.lang.rule.ImmutableLanguage;
|
||||
import net.sourceforge.pmd.lang.vf.VfLanguageModule;
|
||||
import net.sourceforge.pmd.lang.vf.ast.VfNode;
|
||||
import net.sourceforge.pmd.lang.vf.ast.VfParserVisitor;
|
||||
|
||||
public abstract class AbstractVfRule extends AbstractRule implements VfParserVisitor, ImmutableLanguage {
|
||||
public abstract class AbstractVfRule extends AbstractRule implements VfParserVisitor {
|
||||
|
||||
public AbstractVfRule() {
|
||||
super.setLanguage(LanguageRegistry.getLanguage(VfLanguageModule.NAME));
|
||||
|
@ -8,12 +8,11 @@ import net.sourceforge.pmd.RuleContext;
|
||||
import net.sourceforge.pmd.lang.LanguageRegistry;
|
||||
import net.sourceforge.pmd.lang.ast.Node;
|
||||
import net.sourceforge.pmd.lang.rule.AbstractRule;
|
||||
import net.sourceforge.pmd.lang.rule.ImmutableLanguage;
|
||||
import net.sourceforge.pmd.lang.vm.VmLanguageModule;
|
||||
import net.sourceforge.pmd.lang.vm.ast.VmNode;
|
||||
import net.sourceforge.pmd.lang.vm.ast.VmParserVisitor;
|
||||
|
||||
public abstract class AbstractVmRule extends AbstractRule implements VmParserVisitor, ImmutableLanguage {
|
||||
public abstract class AbstractVmRule extends AbstractRule implements VmParserVisitor {
|
||||
|
||||
public AbstractVmRule() {
|
||||
super.setLanguage(LanguageRegistry.getLanguage(VmLanguageModule.NAME));
|
||||
|
@ -10,7 +10,6 @@ import net.sourceforge.pmd.lang.LanguageRegistry;
|
||||
import net.sourceforge.pmd.lang.ParserOptions;
|
||||
import net.sourceforge.pmd.lang.ast.Node;
|
||||
import net.sourceforge.pmd.lang.rule.AbstractRule;
|
||||
import net.sourceforge.pmd.lang.rule.ImmutableLanguage;
|
||||
import net.sourceforge.pmd.lang.xml.XmlLanguageModule;
|
||||
import net.sourceforge.pmd.lang.xml.XmlParserOptions;
|
||||
import net.sourceforge.pmd.lang.xml.ast.XmlNode;
|
||||
@ -21,7 +20,7 @@ import net.sourceforge.pmd.properties.PropertyDescriptor;
|
||||
* {@link #visit(XmlNode, RuleContext)} and can call <code>super</code> to visit
|
||||
* children.
|
||||
*/
|
||||
public class AbstractXmlRule extends AbstractRule implements ImmutableLanguage {
|
||||
public class AbstractXmlRule extends AbstractRule {
|
||||
|
||||
@Deprecated
|
||||
public static final PropertyDescriptor<Boolean> COALESCING_DESCRIPTOR = XmlParserOptions.COALESCING_DESCRIPTOR;
|
||||
|
Reference in New Issue
Block a user