/**
* This file is licensed under the University of Illinois/NCSA Open Source License. See LICENSE.TXT for details.
*/
package edu.illinois.keshmesh.detector.bugs;
import edu.illinois.keshmesh.detector.BugPatternDetector;
/**
*
* @author Mohsen Vakilian
* @author Stas Negara
*
*/
abstract public class BugPattern {
private final String name;
private final String description;
protected BugPatternDetector bugPatternDetector;
public BugPattern(String name, String description) {
this.name = name;
this.description = description;
}
public String getName() {
return name;
}
public String getDescription() {
return description;
}
abstract public BugPatternDetector createBugPatternDetector();
public BugPatternDetector getBugPatternDetector() {
return bugPatternDetector;
}
public abstract boolean hasFixer();
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((description == null) ? 0 : description.hashCode());
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
BugPattern other = (BugPattern) obj;
if (description == null) {
if (other.description != null)
return false;
} else if (!description.equals(other.description))
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
@Override
public String toString() {
return name + ". " + description;
}
}