package jdepend.parse.impl; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import jdepend.framework.file.AnalyzeData; import jdepend.metadata.JavaClass; import jdepend.parse.BuildListener; import jdepend.parse.ParseConfigurator; import jdepend.parse.ParseListener; /** * Classes构建器 * * @author wangdg * */ public abstract class AbstractClassBuilder { private ParseConfigurator conf; private ArrayList<BuildListener> buildListeners = new ArrayList<BuildListener>(); private boolean isBuildClassRelation = true; private boolean isSupplyJavaClassDetail = true; private boolean isParseConfigs = true; private String parseModel; protected void onClassBuild(Collection<JavaClass> classes) { for (Iterator<BuildListener> i = buildListeners.iterator(); i.hasNext();) { i.next().onBuildJavaClasses(classes); } } public void addBuildListener(BuildListener listener) { buildListeners.add(listener); } public void setConf(ParseConfigurator conf) { this.conf = conf; } public ParseConfigurator getConf() { if (this.conf == null) { this.conf = new ParseConfigurator(); } return conf; } public boolean isBuildClassRelation() { return isBuildClassRelation; } public void setBuildClassRelation(boolean isBuildClassRelation) { this.isBuildClassRelation = isBuildClassRelation; } public boolean isSupplyJavaClassDetail() { return isSupplyJavaClassDetail; } public void setSupplyJavaClassDetail(boolean isSupplyJavaClassDetail) { this.isSupplyJavaClassDetail = isSupplyJavaClassDetail; } public boolean isParseConfigs() { return isParseConfigs; } public void setParseConfigs(boolean isParseConfigs) { this.isParseConfigs = isParseConfigs; } public String getParseModel() { return parseModel; } public void setParseModel(String parseModel) { this.parseModel = parseModel; } public abstract Collection<JavaClass> build(AnalyzeData data); public abstract PackageFilter getFilter(); public abstract void addParseListener(ParseListener listener); public abstract void setWriter(PrintWriter writer); }