package jdepend.framework; import java.util.*; /** * The <code>JavaClass</code> class represents a Java * class or interface. * * @author <b>Mike Clark</b> * @author Clarkware Consulting, Inc. */ public class JavaClass { private String className; private String packageName; private boolean isAbstract; private HashMap imports; private String sourceFile; public JavaClass(String name) { className = name; packageName = "default"; isAbstract = false; imports = new HashMap(); sourceFile = "Unknown"; } public void setName(String name) { className = name; } public String getName() { return className; } public void setPackageName(String name) { packageName = name; } public String getPackageName() { return packageName; } public void setSourceFile(String name) { sourceFile = name; } public String getSourceFile() { return sourceFile; } public Collection getImportedPackages() { return imports.values(); } public void addImportedPackage(JavaPackage jPackage) { if (!jPackage.getName().equals(getPackageName())) { imports.put(jPackage.getName(), jPackage); } } public boolean isAbstract() { return isAbstract; } public void isAbstract(boolean isAbstract) { this.isAbstract = isAbstract; } public boolean equals(Object other) { if (other instanceof JavaClass) { JavaClass otherClass = (JavaClass) other; return otherClass.getName().equals(getName()); } return false; } public int hashCode() { return getName().hashCode(); } public static class ClassComparator implements Comparator { public int compare(Object a, Object b) { JavaClass c1 = (JavaClass) a; JavaClass c2 = (JavaClass) b; return c1.getName().compareTo(c2.getName()); } } }