in command.line/java/com/jetbrains/teamcity/command/ListCommand.java [54:89]
private String printConfigurations(final Server server, Args args) throws ECommunicationException {
final String filterByProject;
if (args != null && args.hasArgument(PROJECT_SWITCH, PROJECT_SWITCH_LONG)) {
filterByProject = args.getArgument(PROJECT_SWITCH, PROJECT_SWITCH_LONG);
} else {
filterByProject = null;
}
// get & sort
// cache projects
final HashMap<String, String> prjMap = new HashMap<String, String>();
for (final ProjectData prj : server.getProjects()) {
prjMap.put(prj.getExternalId(), prj.getName());
}
final ArrayList<BuildTypeData> configurations = new ArrayList<BuildTypeData>(server.getConfigurations());
Collections.sort(configurations, new Comparator<BuildTypeData>() {
public int compare(BuildTypeData o1, BuildTypeData o2) {
if (filterByProject != null) {
return o1.getName().compareTo(o2.getName());
}
final String prj1name = prjMap.get(o1.getExternalId());
final String prj2name = prjMap.get(o2.getExternalId());
return (prj1name + " " + o1.getName()).compareTo(prj2name + " " + o2.getName());
}
});
// display
final StringTable table = new Util.StringTable(Messages.getString("List.config.list.header")); //$NON-NLS-1$
for (final BuildTypeData config : configurations) {
// check
if ((filterByProject == null) || config.getProjectExternalId().equals(filterByProject)) {
final String description = config.getDescription() == null ? EMPTY : config.getDescription();
final String prjName = prjMap.get(config.getProjectExternalId());
table.addRow(MessageFormat.format(Messages.getString("List.config.list.pattern"), config.getExternalId(), prjName, config.getName(), config.getStatus(), description)); //$NON-NLS-1$
}
}
return table.toString();
}