private String printConfigurations()

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();
  }