/** * 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; } }