package com.coffeelint.cli; import com.thoughtworks.xstream.XStream; import java.util.ArrayList; import java.util.List; public class CoffeeLint { public File file = new File(); public String version; public static CoffeeLint read(String xml) { XStream xstream = new XStream(); xstream.alias("checkstyle", CoffeeLint.class); xstream.useAttributeFor(CoffeeLint.class, "version"); xstream.alias("file", File.class); xstream.alias("error", Issue.class); xstream.addImplicitCollection(File.class, "errors"); xstream.useAttributeFor(File.class, "name"); xstream.useAttributeFor(Issue.class, "source"); xstream.useAttributeFor(Issue.class, "line"); // xstream.useAttributeFor(Issue.class, "column"); xstream.useAttributeFor(Issue.class, "severity"); xstream.useAttributeFor(Issue.class, "message"); CoffeeLint lint = (CoffeeLint) xstream.fromXML(xml); if (lint.file == null) { lint.file = new File(); } if (lint.file.errors == null) { lint.file.errors = new ArrayList<Issue>(); } return lint; } public static class File { public String name; public List<Issue> errors = new ArrayList<Issue>(); } public static class Issue { public String source; public int line; // public int column; public String severity; public String message; } }