public void valuesFromNode(JsonElement json) throws EGraphQLException { if (json instanceof JsonPrimitive && ((JsonPrimitive) json).isString()) values.add(new StringValue(((JsonPrimitive)json).getAsString())); else if (json instanceof JsonPrimitive && ((JsonPrimitive) json).isNumber()) values.add(new NumberValue(((JsonPrimitive)json).getAsString())); else if (json instanceof JsonPrimitive && ((JsonPrimitive) json).isBoolean()) values.add(new NameValue(((JsonPrimitive)json).getAsBoolean())); else if (json instanceof JsonObject) values.add(new ObjectValue((JsonObject) json)); else if (json instanceof JsonArray) { for (JsonElement v : (JsonArray) json) valuesFromNode(v); } else throw new EGraphQLException("Unexpected JSON type for \""+name+"\": "+json.getClass().getName()); }
if (sel.getField().hasDirective("slice")) { Directive dir = sel.getField().directive("slice"); String s = ((StringValue) dir.getArguments().get(0).getValues().get(0)).getValue(); if (s.equals("$index")) expression = magicExpression;
if (sel.getField().hasDirective("slice")) { Directive dir = sel.getField().directive("slice"); String s = ((StringValue) dir.getArguments().get(0).getValues().get(0)).getValue(); if (s.equals("$index")) expression = magicExpression;
private void processPrimitive(Argument arg, Base value) { String s = value.fhirType(); if (s.equals("integer") || s.equals("decimal") || s.equals("unsignedInt") || s.equals("positiveInt")) arg.addValue(new NumberValue(value.primitiveValue())); else if (s.equals("boolean")) arg.addValue(new NameValue(value.primitiveValue())); else arg.addValue(new StringValue(value.primitiveValue())); }
private void processSearchFull(ObjectValue target, Field field, boolean inheritedList, String suffix) throws EGraphQLException, FHIRException { if (services == null) throw new EGraphQLException("Resource Referencing services not provided"); List<Argument> params = new ArrayList<Argument>(); Argument carg = null; for ( Argument arg : field.getArguments()) if (arg.getName().equals("cursor")) carg = arg; else params.add(arg); if ((carg != null)) { params.clear();; String[] parts = getSingleValue(carg).split(":"); params.add(new Argument("search-id", new StringValue(parts[0]))); params.add(new Argument("search-offset", new StringValue(parts[1]))); } Bundle bnd = services.search(appInfo, field.getName().substring(0, field.getName().length()-10), params); SearchWrapper bndWrapper = new SearchWrapper(field.getName(), bnd); Argument arg = target.addField(field.getAlias()+suffix, listStatus(field, false)); ObjectValue obj = new ObjectValue(); arg.addValue(obj); processObject(null, bndWrapper, obj, field.getSelectionSet(), inheritedList, suffix); }
private Value parseValue() throws EGraphQLException, IOException { Value result = null; switch (lexType) { case gqlltNull: throw new EGraphQLException("Attempt to read a value after reading off the } of the GraphQL statement"); case gqlltName: result = new NameValue(token.toString()); break; case gqlltPunctuation: if (hasPunctuation("$")) { consumePunctuation("$"); result = new VariableValue(token.toString()); } else if (hasPunctuation("{")) { consumePunctuation("{"); ObjectValue obj = new ObjectValue(); while (!hasPunctuation("}")) obj.getFields().add(parseArgument()); result = obj; } else throw new EGraphQLException("Attempt to read a value at \""+token.toString()+"\""); break; case gqlltString: result = new StringValue(token.toString()); break; case gqlltNumber: result = new NumberValue(token.toString()); break; } next(); return result; }
params.add(arg); arg.setName(getSingleValue(parg)); arg.addValue(new StringValue(source.fhirType()+"/"+source.getId())); services.listResources(appInfo, field.getName().substring(0, field.getName().length() - 4), params, list); arg = null;
private void processReverseReferenceSearch(Resource source, Field field, ObjectValue target, boolean inheritedList, String suffix) throws EGraphQLException, FHIRException { if (services == null) throw new EGraphQLException("Resource Referencing services not provided"); List<Argument> params = new ArrayList<Argument>(); Argument parg = null; for (Argument a : field.getArguments()) if (!(a.getName().equals("_reference"))) params.add(a); else if ((parg == null)) parg = a; else throw new EGraphQLException("Duplicate parameter _reference"); if (parg == null) throw new EGraphQLException("Missing parameter _reference"); Argument arg = new Argument(); params.add(arg); arg.setName(getSingleValue(parg)); arg.addValue(new StringValue(source.fhirType()+"/"+source.getId())); Bundle bnd = services.search(appInfo, field.getName().substring(0, field.getName().length()-10), params); Base bndWrapper = new SearchWrapper(field.getName(), bnd); arg = target.addField(field.getAlias()+suffix, listStatus(field, false)); ObjectValue obj = new ObjectValue(); arg.addValue(obj); processObject(null, bndWrapper, obj, field.getSelectionSet(), inheritedList, suffix); }
if (prop == null) { if ((sel.getField().getName().equals("resourceType") && source instanceof Resource)) target.addField("resourceType", listStatus(sel.getField(), false)).addValue(new StringValue(source.fhirType())); else if ((sel.getField().getName().equals("resource") && source.fhirType().equals("Reference"))) processReference(context, source, sel.getField(), target, inheritedList, suffix);
public void valuesFromNode(JsonElement json) throws EGraphQLException { if (json instanceof JsonPrimitive && ((JsonPrimitive) json).isString()) values.add(new StringValue(((JsonPrimitive)json).getAsString())); else if (json instanceof JsonPrimitive && ((JsonPrimitive) json).isNumber()) values.add(new NumberValue(((JsonPrimitive)json).getAsString())); else if (json instanceof JsonPrimitive && ((JsonPrimitive) json).isBoolean()) values.add(new NameValue(((JsonPrimitive)json).getAsBoolean())); else if (json instanceof JsonObject) values.add(new ObjectValue((JsonObject) json)); else if (json instanceof JsonArray) { for (JsonElement v : (JsonArray) json) valuesFromNode(v); } else throw new EGraphQLException("Unexpected JSON type for \""+name+"\": "+json.getClass().getName()); }
private void processPrimitive(Argument arg, Base value) { String s = value.fhirType(); if (s.equals("integer") || s.equals("decimal") || s.equals("unsignedInt") || s.equals("positiveInt")) arg.addValue(new NumberValue(value.primitiveValue())); else if (s.equals("boolean")) arg.addValue(new NameValue(value.primitiveValue())); else arg.addValue(new StringValue(value.primitiveValue())); }
private void processSearchFull(ObjectValue target, Field field, boolean inheritedList, String suffix) throws EGraphQLException, FHIRException { if (services == null) throw new EGraphQLException("Resource Referencing services not provided"); List<Argument> params = new ArrayList<Argument>(); Argument carg = null; for ( Argument arg : field.getArguments()) if (arg.getName().equals("cursor")) carg = arg; else params.add(arg); if ((carg != null)) { params.clear();; String[] parts = getSingleValue(carg).split(":"); params.add(new Argument("search-id", new StringValue(parts[0]))); params.add(new Argument("search-offset", new StringValue(parts[1]))); } Bundle bnd = services.search(appInfo, field.getName().substring(0, field.getName().length()-10), params); SearchWrapper bndWrapper = new SearchWrapper(field.getName(), bnd); Argument arg = target.addField(field.getAlias()+suffix, listStatus(field, false)); ObjectValue obj = new ObjectValue(); arg.addValue(obj); processObject(null, bndWrapper, obj, field.getSelectionSet(), inheritedList, suffix); }
private Value parseValue() throws EGraphQLException, IOException { Value result = null; switch (lexType) { case gqlltNull: throw new EGraphQLException("Attempt to read a value after reading off the } of the GraphQL statement"); case gqlltName: result = new NameValue(token.toString()); break; case gqlltPunctuation: if (hasPunctuation("$")) { consumePunctuation("$"); result = new VariableValue(token.toString()); } else if (hasPunctuation("{")) { consumePunctuation("{"); ObjectValue obj = new ObjectValue(); while (!hasPunctuation("}")) obj.getFields().add(parseArgument()); result = obj; } else throw new EGraphQLException("Attempt to read a value at \""+token.toString()+"\""); break; case gqlltString: result = new StringValue(token.toString()); break; case gqlltNumber: result = new NumberValue(token.toString()); break; } next(); return result; }
params.add(arg); arg.setName(getSingleValue(parg)); arg.addValue(new StringValue(source.fhirType()+"/"+source.getId())); services.listResources(appInfo, field.getName().substring(0, field.getName().length() - 4), params, list); arg = null;
private void processReverseReferenceSearch(Resource source, Field field, ObjectValue target, boolean inheritedList, String suffix) throws EGraphQLException, FHIRException { if (services == null) throw new EGraphQLException("Resource Referencing services not provided"); List<Argument> params = new ArrayList<Argument>(); Argument parg = null; for (Argument a : field.getArguments()) if (!(a.getName().equals("_reference"))) params.add(a); else if ((parg == null)) parg = a; else throw new EGraphQLException("Duplicate parameter _reference"); if (parg == null) throw new EGraphQLException("Missing parameter _reference"); Argument arg = new Argument(); params.add(arg); arg.setName(getSingleValue(parg)); arg.addValue(new StringValue(source.fhirType()+"/"+source.getId())); Bundle bnd = services.search(appInfo, field.getName().substring(0, field.getName().length()-10), params); Base bndWrapper = new SearchWrapper(field.getName(), bnd); arg = target.addField(field.getAlias()+suffix, listStatus(field, false)); ObjectValue obj = new ObjectValue(); arg.addValue(obj); processObject(null, bndWrapper, obj, field.getSelectionSet(), inheritedList, suffix); }
if (prop == null) { if ((sel.getField().getName().equals("resourceType") && source instanceof Resource)) target.addField("resourceType", listStatus(sel.getField(), false)).addValue(new StringValue(source.fhirType())); else if ((sel.getField().getName().equals("resource") && source.fhirType().equals("Reference"))) processReference(context, source, sel.getField(), target, inheritedList, suffix);