/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.lang.rule;
import java.util.List;
import java.util.Map;
import java.util.Set;
import net.sourceforge.pmd.PropertyDescriptor;
import net.sourceforge.pmd.PropertySource;
import net.sourceforge.pmd.Rule;
import net.sourceforge.pmd.RuleContext;
import net.sourceforge.pmd.RulePriority;
import net.sourceforge.pmd.lang.Language;
import net.sourceforge.pmd.lang.LanguageVersion;
import net.sourceforge.pmd.lang.ParserOptions;
import net.sourceforge.pmd.lang.ast.Node;
/**
* Base class for Rule implementations which delegate to another Rule instance.
*/
public abstract class AbstractDelegateRule implements Rule {
private Rule rule;
public void setRule(Rule rule) {
this.rule = rule;
}
public Rule getRule() {
return rule;
}
@Override
public Language getLanguage() {
return rule.getLanguage();
}
@Override
public void setLanguage(Language language) {
rule.setLanguage(language);
}
@Override
public LanguageVersion getMinimumLanguageVersion() {
return rule.getMinimumLanguageVersion();
}
@Override
public void setMinimumLanguageVersion(LanguageVersion minimumlanguageVersion) {
rule.setMinimumLanguageVersion(minimumlanguageVersion);
}
@Override
public void setMaximumLanguageVersion(LanguageVersion maximumlanguageVersion) {
rule.setMaximumLanguageVersion(maximumlanguageVersion);
}
@Override
public LanguageVersion getMaximumLanguageVersion() {
return rule.getMaximumLanguageVersion();
}
@Override
public boolean isDeprecated() {
return rule.isDeprecated();
}
/**
* @see PropertySource#dysfunctionReason()
*/
@Override
public String dysfunctionReason() {
return rule.dysfunctionReason();
}
@Override
public Set<PropertyDescriptor<?>> ignoredProperties() {
return rule.ignoredProperties();
}
@Override
public void setDeprecated(boolean deprecated) {
rule.setDeprecated(deprecated);
}
@Override
public String getName() {
return rule.getName();
}
@Override
public void setName(String name) {
rule.setName(name);
}
@Override
public String getSince() {
return rule.getSince();
}
@Override
public void setSince(String since) {
rule.setSince(since);
}
@Override
public String getRuleClass() {
return rule.getRuleClass();
}
@Override
public void setRuleClass(String ruleClass) {
rule.setRuleClass(ruleClass);
}
@Override
public String getRuleSetName() {
return rule.getRuleSetName();
}
@Override
public void setRuleSetName(String name) {
rule.setRuleSetName(name);
}
@Override
public String getMessage() {
return rule.getMessage();
}
@Override
public void setMessage(String message) {
rule.setMessage(message);
}
@Override
public String getDescription() {
return rule.getDescription();
}
@Override
public void setDescription(String description) {
rule.setDescription(description);
}
@Override
public List<String> getExamples() {
return rule.getExamples();
}
@Override
public void addExample(String example) {
rule.addExample(example);
}
@Override
public String getExternalInfoUrl() {
return rule.getExternalInfoUrl();
}
@Override
public void setExternalInfoUrl(String url) {
rule.setExternalInfoUrl(url);
}
@Override
public RulePriority getPriority() {
return rule.getPriority();
}
@Override
public void setPriority(RulePriority priority) {
rule.setPriority(priority);
}
@Override
public ParserOptions getParserOptions() {
return rule.getParserOptions();
}
@Override
public void definePropertyDescriptor(PropertyDescriptor<?> propertyDescriptor) throws IllegalArgumentException {
rule.definePropertyDescriptor(propertyDescriptor);
}
@Override
public PropertyDescriptor<?> getPropertyDescriptor(String name) {
return rule.getPropertyDescriptor(name);
}
@Override
public List<PropertyDescriptor<?>> getPropertyDescriptors() {
return rule.getPropertyDescriptors();
}
@Override
public <T> T getProperty(PropertyDescriptor<T> propertyDescriptor) {
return rule.getProperty(propertyDescriptor);
}
@Override
public <T> void setProperty(PropertyDescriptor<T> propertyDescriptor, T value) {
rule.setProperty(propertyDescriptor, value);
}
@Override
public Map<PropertyDescriptor<?>, Object> getPropertiesByPropertyDescriptor() {
return rule.getPropertiesByPropertyDescriptor();
}
@Override
public void setUsesDFA() {
rule.setUsesDFA();
}
@Override
public boolean usesDFA() {
return rule.usesDFA();
}
@Override
public void setUsesTypeResolution() {
rule.setUsesTypeResolution();
}
@Override
public boolean usesTypeResolution() {
return rule.usesTypeResolution();
}
@Override
public boolean usesRuleChain() {
return rule.usesRuleChain();
}
@Override
public List<String> getRuleChainVisits() {
return rule.getRuleChainVisits();
}
@Override
public void addRuleChainVisit(Class<? extends Node> nodeClass) {
rule.addRuleChainVisit(nodeClass);
}
@Override
public void addRuleChainVisit(String astNodeName) {
rule.addRuleChainVisit(astNodeName);
}
@Override
public void start(RuleContext ctx) {
rule.start(ctx);
}
@Override
public void apply(List<? extends Node> nodes, RuleContext ctx) {
rule.apply(nodes, ctx);
}
@Override
public void end(RuleContext ctx) {
rule.end(ctx);
}
/**
* @see Rule#hasDescriptor(PropertyDescriptor)
*/
@Override
public boolean hasDescriptor(PropertyDescriptor<?> descriptor) {
return rule.hasDescriptor(descriptor);
}
}