Java tutorial
/* * Copyright 2013-present Facebook, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use this file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ package com.facebook.buck.plugin.intellij.commands; import com.facebook.buck.plugin.intellij.BuckTarget; import com.fasterxml.jackson.core.JsonFactory; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.ImmutableList; import com.intellij.openapi.diagnostic.Logger; import java.io.IOException; public class TargetsCommand { private static final Logger LOG = Logger.getInstance(TargetsCommand.class); private TargetsCommand() { } public static ImmutableList<BuckTarget> getTargets(BuckRunner buckRunner) { try { int exitCode = buckRunner.execute("targets", "--json"); if (exitCode != 0) { throw new RuntimeException(buckRunner.getStderr()); } // Parse output ObjectMapper mapper = new ObjectMapper(); JsonFactory factory = mapper.getJsonFactory(); JsonParser parser = factory.createJsonParser(buckRunner.getStdout()); JsonNode jsonNode = mapper.readTree(parser); if (!jsonNode.isArray()) { throw new IllegalStateException(); } ImmutableList.Builder<BuckTarget> builder = ImmutableList.builder(); for (JsonNode target : jsonNode) { if (!target.isObject()) { throw new IllegalStateException(); } String basePath = target.get("buck.base_path").asText(); String name = target.get("name").asText(); String type = target.get("type").asText(); builder.add(new BuckTarget(type, name, basePath)); } return builder.build(); } catch (IOException e) { LOG.error(e); } catch (RuntimeException e) { LOG.error(e); } return ImmutableList.of(); } }