package com.eslint.utils; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; import com.intellij.execution.process.ProcessOutput; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; /** * ESLint result * Created by idok on 8/25/14. */ public class Result { public List<VerifyMessage> warns = new ArrayList<VerifyMessage>(); public String errorOutput; private static List<FileResult> parseInternal(String json) { GsonBuilder builder = new GsonBuilder(); // builder.registerTypeAdapterFactory(adapter); Gson g = builder.setPrettyPrinting().create(); Type listType = new TypeToken<ArrayList<FileResult>>() {}.getType(); return g.fromJson(json, listType); } public static Result processResults(ProcessOutput output) { Result result = new Result(); result.errorOutput = output.getStderr(); try { List<FileResult> fileResults = parseInternal(output.getStdout()); if (fileResults != null && !fileResults.isEmpty()) { result.warns = fileResults.get(0).messages; } } catch (Exception e) { result.errorOutput = output.getStdout(); // result.errorOutput = e.toString(); } return result; } public static Result createError(String error) { Result result = new Result(); result.errorOutput = error; return result; } }