Search in sources :

Example 1 with ModelBuilder

use of org.kohsuke.stapler.export.ModelBuilder in project hudson-2.x by hudson.

the class ListChangesCommand method act.

@Override
protected int act(List<AbstractBuild<?, ?>> builds) throws IOException {
    // No other permission check needed.
    switch(format) {
        case XML:
            PrintWriter w = new PrintWriter(stdout);
            w.println("<changes>");
            for (AbstractBuild build : builds) {
                w.println("<build number='" + build.getNumber() + "'>");
                ChangeLogSet<?> cs = build.getChangeSet();
                Model p = new ModelBuilder().get(cs.getClass());
                p.writeTo(cs, Flavor.XML.createDataWriter(cs, w));
                w.println("</build>");
            }
            w.println("</changes>");
            w.flush();
            break;
        case CSV:
            for (AbstractBuild build : builds) {
                ChangeLogSet<?> cs = build.getChangeSet();
                for (Entry e : cs) {
                    stdout.printf("%s,%s\n", QuotedStringTokenizer.quote(e.getAuthor().getId()), QuotedStringTokenizer.quote(e.getMsg()));
                }
            }
            break;
        case PLAIN:
            for (AbstractBuild build : builds) {
                ChangeLogSet<?> cs = build.getChangeSet();
                for (Entry e : cs) {
                    stdout.printf("%s\t%s\n", e.getAuthor(), e.getMsg());
                    for (String p : e.getAffectedPaths()) stdout.println("  " + p);
                }
            }
            break;
    }
    return 0;
}
Also used : ModelBuilder(org.kohsuke.stapler.export.ModelBuilder) Entry(hudson.scm.ChangeLogSet.Entry) AbstractBuild(hudson.model.AbstractBuild) Model(org.kohsuke.stapler.export.Model) PrintWriter(java.io.PrintWriter)

Aggregations

AbstractBuild (hudson.model.AbstractBuild)1 Entry (hudson.scm.ChangeLogSet.Entry)1 PrintWriter (java.io.PrintWriter)1 Model (org.kohsuke.stapler.export.Model)1 ModelBuilder (org.kohsuke.stapler.export.ModelBuilder)1