package com.jscs.cli.data; import com.thoughtworks.xstream.XStream; import java.util.ArrayList; import java.util.List; public class JscsLint { public File file; public String version; public static JscsLint read(String xml) { XStream xstream = new XStream(); xstream.alias("checkstyle", JscsLint.class); xstream.useAttributeFor(JscsLint.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"); JscsLint lint = (JscsLint) xstream.fromXML(xml); 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; } }