com.cflint.config.CFLintPluginInfo Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of CFLint Show documentation
Show all versions of CFLint Show documentation
A static code analysis tool for ColdFusion (in the spirit of FindBugs and Lint). With CFLint, you are able to analyze your ColdFusion code base for code violations.
package com.cflint.config;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
import com.cflint.config.CFLintPluginInfo.PluginInfoRule.PluginMessage;
import com.cflint.plugins.CFLintScanner;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
@XmlRootElement(name = "CFLint-Plugin")
@JsonInclude(Include.NON_NULL)
public class CFLintPluginInfo {
List rules = new ArrayList();
List ruleGroups = new ArrayList();
public List getRules() {
return rules;
}
@XmlElement(name = "ruleImpl")
public void setRules(final List rules) {
this.rules = rules;
}
public List getRuleGroups() {
return ruleGroups;
}
@XmlElement(name = "ruleGroup")
public void setRuleGroups(final List ruleGroups) {
this.ruleGroups = ruleGroups;
}
public PluginInfoRule getRuleByName(final String ruleName) {
for (final PluginInfoRule rule : rules) {
if (ruleName != null && ruleName.equals(rule.getName())) {
return rule;
}
}
return null;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("CFLintPluginInfo[");
sb.append(rules);
sb.append("]");
return sb.toString();
}
@JsonInclude(Include.NON_NULL)
public static class RuleGroup {
public RuleGroup(String name) {
super();
this.name = name;
}
public RuleGroup() {
super();
}
String name;
List messages = new ArrayList();
String defaultSeverity;
public String getDefaultSeverity() {
return defaultSeverity;
}
@XmlAttribute(name = "defaultSeverity")
public void setDefaultSeverity(String defaultSeverity) {
this.defaultSeverity = defaultSeverity;
}
public String getName() {
return name;
}
@XmlAttribute(name = "name")
public void setName(String name) {
this.name = name;
}
public List getMessages() {
return messages;
}
@XmlElement(name = "message")
public void setMessages(final List messages) {
this.messages = messages;
}
}
// @JsonInclude(Include.NON_NULL)
public static class PluginInfoRule {
String name;
String className;
List messages = new ArrayList();
List parameters = new ArrayList();
// Associate the pluginInstance with the rule that created it
CFLintScanner pluginInstance;
public CFLintScanner getPluginInstance() {
return pluginInstance;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("PluginInfoRule[");
sb.append("name=");
sb.append(name);
if (className != null && !className.isEmpty()) {
sb.append(", class=");
sb.append(className);
}
sb.append("]");
return sb.toString();
}
@XmlTransient
public void setPluginInstance(final CFLintScanner pluginInstance) {
this.pluginInstance = pluginInstance;
}
public String getClassName() {
return className;
}
@XmlAttribute(name = "className")
public void setClassName(final String className) {
this.className = className;
}
public List getParameters() {
return parameters;
}
@XmlElement(name = "parameter")
public void setParameters(final List parameters) {
this.parameters = parameters;
}
public String getName() {
return name;
}
public void addParameter(final String name, final String value) {
final PluginParameter p = new PluginParameter();
p.setName(name);
p.setValue(value);
parameters.add(p);
}
@XmlAttribute(name = "name")
public void setName(final String name) {
this.name = name;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(final Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final PluginInfoRule other = (PluginInfoRule) obj;
if (name == null) {
if (other.name != null) {
return false;
}
} else if (!name.equals(other.name)) {
return false;
}
return true;
}
public List getMessages() {
return messages;
}
@XmlElement(name = "message")
public void setMessages(final List messages) {
this.messages = messages;
}
public PluginMessage getMessageByCode(final String messageCode) {
for (final PluginMessage message : messages) {
if (messageCode != null && messageCode.equals(message.getCode())) {
return message;
}
}
return null;
}
public static class PluginParameter {
String name;
String value;
public String getName() {
return name;
}
@XmlAttribute(name = "name")
public void setName(final String name) {
this.name = name;
}
public String getValue() {
return value;
}
@XmlAttribute(name = "value")
public void setValue(final String value) {
this.value = value;
}
}
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "code")
public static class PluginMessage {
String code;
public PluginMessage(final String code) {
super();
this.code = code;
}
public PluginMessage() {
super();
}
String messageText;
String severity;
public String getCode() {
return code;
}
@XmlAttribute(name = "code")
public void setCode(final String code) {
this.code = code;
}
public String getMessageText() {
return messageText;
}
@XmlElement(name = "messageText")
public void setMessageText(final String messageText) {
this.messageText = messageText;
}
public String getSeverity() {
return severity;
}
@XmlElement(name = "severity")
public void setSeverity(final String severity) {
this.severity = severity;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((code == null) ? 0 : code.hashCode());
return result;
}
@Override
public boolean equals(final Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final PluginMessage other = (PluginMessage) obj;
if (code == null) {
if (other.code != null) {
return false;
}
} else if (!code.equals(other.code)) {
return false;
}
return true;
}
@Override
public String toString() {
return "PluginMessage [code=" + code + ", messageText=" + messageText + "]";
}
}
}
}