public static Package parseJson(InputStream source) throws EGraphQLException, IOException, EGraphEngine { JsonObject json = (JsonObject) new com.google.gson.JsonParser().parse(TextFile.streamToString(source)); Parser self = new Parser(); self.reader = new StringReader(json.get("query").getAsString()); self.next(); Package result = new Package(self.parseDocument()); result.setOperationName(json.get("operationName").getAsString()); if (json.has("variables")) { JsonObject vl = json.getAsJsonObject("variables"); for (Entry<String, JsonElement> n : vl.entrySet()) result.getVariables().add(new Argument(n.getKey(), n.getValue())); } return result; }
private void processVariables(Operation op) throws EGraphQLException { for (Variable varRef : op.getVariables()) { Argument varDef = null; for (Argument v : graphQL.getVariables()) if (v.getName().equals(varRef.getName())) varDef = v; if (varDef != null) workingVariables.put(varRef.getName(), varDef); // todo: check type? else if (varRef.getDefaultValue() != null) workingVariables.put(varRef.getName(), new Argument(varRef.getName(), varRef.getDefaultValue())); else throw new EGraphQLException("No value found for variable "); } }
public static Package parseJson(InputStream source) throws EGraphQLException, IOException, EGraphEngine { JsonObject json = (JsonObject) new com.google.gson.JsonParser().parse(TextFile.streamToString(source)); Parser self = new Parser(); self.reader = new StringReader(json.get("query").getAsString()); self.next(); Package result = new Package(self.parseDocument()); result.setOperationName(json.get("operationName").getAsString()); if (json.has("variables")) { JsonObject vl = json.getAsJsonObject("variables"); for (Entry<String, JsonElement> n : vl.entrySet()) result.getVariables().add(new Argument(n.getKey(), n.getValue())); } return result; }
private void processVariables(Operation op) throws EGraphQLException { for (Variable varRef : op.getVariables()) { Argument varDef = null; for (Argument v : graphQL.getVariables()) if (v.getName().equals(varRef.getName())) varDef = v; if (varDef != null) workingVariables.put(varRef.getName(), varDef); // todo: check type? else if (varRef.getDefaultValue() != null) workingVariables.put(varRef.getName(), new Argument(varRef.getName(), varRef.getDefaultValue())); else throw new EGraphQLException("No value found for variable "); } }