package jdepend.client.ui.wizard;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import jdepend.client.core.config.CommandConf;
import jdepend.client.core.config.CommandConfMgr;
import jdepend.framework.exception.JDependException;
import jdepend.model.component.modelconf.ComponentModelConf;
public final class DefaultNewGroupWorker implements NewGroupWorker {
private String groupName;
private String path;
private String srcPath;
private List<String> filteredPackages;
private String attribute;
private Map<String, ComponentModelConf> componentModels = new LinkedHashMap<String, ComponentModelConf>();
private List<CommandConf> commandInfos = new ArrayList<CommandConf>();
public void create() throws JDependException {
CommandConfMgr.getInstance().createGroup(groupName, path, srcPath, filteredPackages, attribute, commandInfos,
componentModels);
}
public Step getNextStep(Step current) {
return null;
}
public Step getPriStep(Step current) {
return null;
}
public String getGroupName() {
return groupName;
}
public void setGroupName(String groupName) {
this.groupName = groupName;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public ComponentModelConf getComponentModel(String componentModelName) {
return componentModels.get(componentModelName);
}
public List<String> getComponentModels() {
return new ArrayList<String>(componentModels.keySet());
}
public void addComponentModel(ComponentModelConf components) {
this.componentModels.put(components.getName(), components);
}
public List<CommandConf> getCommandInfos() {
return commandInfos;
}
public void setCommandInfos(List<CommandConf> commandInfos) {
this.commandInfos = commandInfos;
}
@Override
public String toString() {
StringBuilder content = new StringBuilder(500);
content.append("Group Name:");
content.append(groupName);
content.append("\n\n");
content.append("path:");
content.append(path);
content.append("\n\n");
content.append("srcPath:");
content.append(srcPath);
content.append("\n\n");
content.append("filteredPackages:\n");
for (String filteredPackage : filteredPackages) {
content.append(tab(1) + filteredPackage);
content.append("\n");
}
content.append("\n\n");
if (this.attribute != null) {
content.append("Attribute:");
content.append(attribute);
content.append("\n\n");
}
content.append("componentModels:\n\n");
if (componentModels == null || componentModels.size() == 0) {
content.append(tab(1) + "以包为默认组件。\n");
} else {
for (ComponentModelConf componentModelConf : this.componentModels.values()) {
content.append(componentModelConf);
content.append("\n");
}
}
content.append("\n");
content.append("commands:\n\n");
for (CommandConf commandInfo : commandInfos) {
content.append(commandInfo);
}
content.append("\n");
return content.toString();
}
private String tab(int n) {
StringBuilder s = new StringBuilder();
for (int i = 0; i < n; i++) {
s.append(" ");
}
return s.toString();
}
public String getSrcPath() {
return srcPath;
}
public void setSrcPath(String srcPath) {
this.srcPath = srcPath;
}
public void setFilteredPackages(List<String> filteredPackages) {
this.filteredPackages = filteredPackages;
}
public List<String> getFilteredPackages() {
return filteredPackages;
}
public String getAttribute() {
return attribute;
}
public void setAttribute(String attribute) {
this.attribute = attribute;
}
}