graphql.schema.CoercingParseLiteralException Java Examples

The following examples show how to use graphql.schema.CoercingParseLiteralException. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: Scalars.java    From besu with Apache License 2.0 6 votes vote down vote up
@Override
public Object parseLiteral(final Object input) throws CoercingParseLiteralException {
  try {
    if (input instanceof IntValue) {
      return ((IntValue) input).getValue().longValue();
    } else if (input instanceof StringValue) {
      final String value = ((StringValue) input).getValue().toLowerCase();
      if (value.startsWith("0x")) {
        return Bytes.fromHexStringLenient(value).toLong();
      } else {
        return Long.parseLong(value);
      }
    }
  } catch (final NumberFormatException e) {
    // fall through
  }
  throw new CoercingParseLiteralException("Value is not any Long : '" + input + "'");
}
 
Example #2
Source File: Scalars.java    From graphql-spqr with Apache License 2.0 5 votes vote down vote up
@Override
public byte[] parseLiteral(Object input) {
    StringValue string = literalOrException(input, StringValue.class);
    try {
        return Base64.getDecoder().decode(string.getValue());
    } catch (IllegalArgumentException e) {
        throw new CoercingParseLiteralException("Input string \"" + input + "\" is not a valid Base64 value", e);
    }
}
 
Example #3
Source File: JacksonObjectScalars.java    From graphql-spqr with Apache License 2.0 5 votes vote down vote up
private static JsonNode parseJsonValue(Value value, Map<String, Object> variables) {
    if (value instanceof BooleanValue) {
        return JsonNodeFactory.instance.booleanNode(((BooleanValue) value).isValue());
    }
    if (value instanceof EnumValue) {
        return JsonNodeFactory.instance.textNode(((EnumValue) value).getName());
    }
    if (value instanceof FloatValue) {
        return JsonNodeFactory.instance.numberNode(((FloatValue) value).getValue());
    }
    if (value instanceof IntValue) {
        return JsonNodeFactory.instance.numberNode(((IntValue) value).getValue());
    }
    if (value instanceof NullValue) {
        return JsonNodeFactory.instance.nullNode();
    }
    if (value instanceof StringValue) {
        return JsonNodeFactory.instance.textNode(((StringValue) value).getValue());
    }
    if (value instanceof ArrayValue) {
        List<Value> values = ((ArrayValue) value).getValues();
        ArrayNode jsonArray = JsonNodeFactory.instance.arrayNode(values.size());
        values.forEach(v -> jsonArray.add(parseJsonValue(v, variables)));
        return jsonArray;
    }
    if (value instanceof VariableReference) {
        return OBJECT_MAPPER.convertValue(variables.get(((VariableReference) value).getName()), JsonNode.class);
    }
    if (value instanceof ObjectValue) {
        final ObjectNode result = JsonNodeFactory.instance.objectNode();
        ((ObjectValue) value).getObjectFields().forEach(objectField ->
                result.set(objectField.getName(), parseJsonValue(objectField.getValue(), variables)));
        return result;
    }
    //Should never happen
    throw new CoercingParseLiteralException("Unknown scalar AST type: " + value.getClass().getName());
}
 
Example #4
Source File: JacksonScalars.java    From graphql-spqr with Apache License 2.0 5 votes vote down vote up
@Override
public DecimalNode parseLiteral(Object input) {
    if (input instanceof IntValue) {
        return (DecimalNode) JsonNodeFactory.instance.numberNode(((IntValue) input).getValue());
    } else if (input instanceof FloatValue) {
        return (DecimalNode) JsonNodeFactory.instance.numberNode(((FloatValue) input).getValue());
    } else {
        throw new CoercingParseLiteralException(errorMessage(input, IntValue.class, FloatValue.class));
    }
}
 
Example #5
Source File: GsonScalars.java    From graphql-spqr with Apache License 2.0 5 votes vote down vote up
private static JsonElement parseJsonValue(Value value) {
    if (value instanceof BooleanValue) {
        return new JsonPrimitive(((BooleanValue) value).isValue());
    }
    if (value instanceof EnumValue) {
        return new JsonPrimitive(((EnumValue) value).getName());
    }
    if (value instanceof FloatValue) {
        return new JsonPrimitive(((FloatValue) value).getValue());
    }
    if (value instanceof IntValue) {
        return new JsonPrimitive(((IntValue) value).getValue());
    }
    if (value instanceof NullValue) {
        return JsonNull.INSTANCE;
    }
    if (value instanceof StringValue) {
        return new JsonPrimitive(((StringValue) value).getValue());
    }
    if (value instanceof ArrayValue) {
        List<Value> values = ((ArrayValue) value).getValues();
        JsonArray jsonArray = new JsonArray(values.size());
        values.forEach(v -> jsonArray.add(parseJsonValue(v)));
        return jsonArray;
    }
    if (value instanceof ObjectValue) {
        final JsonObject result = new JsonObject();
        ((ObjectValue) value).getObjectFields().forEach(objectField ->
                result.add(objectField.getName(), parseJsonValue(objectField.getValue())));
        return result;
    }
    //Should never happen, as it would mean the variable was not replaced by the parser
    throw new CoercingParseLiteralException("Unknown scalar AST type: " + value.getClass().getName());
}
 
Example #6
Source File: ProtoScalars.java    From rejoiner with Apache License 2.0 5 votes vote down vote up
@Override
public ByteString parseLiteral(Object input) throws CoercingParseLiteralException {
  if (input instanceof StringValue) {
    return ByteString.copyFromUtf8(((StringValue) input).getValue());
  }
  return null;
}
 
Example #7
Source File: JacksonScalars.java    From graphql-spqr with Apache License 2.0 5 votes vote down vote up
@Override
public IntNode parseLiteral(Object input) {
    if (input instanceof IntValue) {
        try {
            return IntNode.valueOf(((IntValue) input).getValue().intValueExact());
        } catch (ArithmeticException e) {
            throw new CoercingParseLiteralException(input + " does not fit into an int without a loss of precision");
        }
    } else {
        throw new CoercingParseLiteralException(errorMessage(input, IntValue.class));
    }
}
 
Example #8
Source File: JacksonScalars.java    From graphql-spqr with Apache License 2.0 5 votes vote down vote up
@Override
public BigIntegerNode parseLiteral(Object input) {
    if (input instanceof IntValue) {
        return BigIntegerNode.valueOf(((IntValue) input).getValue());
    } else {
        throw new CoercingParseLiteralException(errorMessage(input, IntValue.class));
    }
}
 
Example #9
Source File: JsonCoercingUtil.java    From stream-registry with Apache License 2.0 5 votes vote down vote up
public static Object parseLiteral(Object input, Map<String, Object> variables) throws CoercingParseLiteralException {
  if (!(input instanceof Value)) {
    log.error("Expected 'Value', got: {}", input);
    throw new CoercingParseLiteralException("Expected 'Value', got: " + input);
  }
  Object result = null;
  if (input instanceof StringValue) {
    result = ((StringValue) input).getValue();
  } else if (input instanceof IntValue) {
    result = ((IntValue) input).getValue();
  } else if (input instanceof FloatValue) {
    result = ((FloatValue) input).getValue();
  } else if (input instanceof BooleanValue) {
    result = ((BooleanValue) input).isValue();
  } else if (input instanceof EnumValue) {
    result = ((EnumValue) input).getName();
  } else if (input instanceof VariableReference) {
    result = variables.get(((VariableReference) input).getName());
  } else if (input instanceof ArrayValue) {
    result = ((ArrayValue) input).getValues().stream()
        .map(v -> parseLiteral(v, variables))
        .collect(toList());
  } else if (input instanceof ObjectValue) {
    result = ((ObjectValue) input).getObjectFields().stream()
        .collect(toMap(ObjectField::getName, f -> parseLiteral(f.getValue(), variables)));
  }
  return result;
}
 
Example #10
Source File: JacksonScalars.java    From graphql-spqr with Apache License 2.0 5 votes vote down vote up
@Override
public ShortNode parseLiteral(Object input) {
    if (input instanceof IntValue) {
        try {
            return ShortNode.valueOf(((IntValue) input).getValue().shortValueExact());
        } catch (ArithmeticException e) {
            throw new CoercingParseLiteralException(input + " does not fit into a short without a loss of precision");
        }
    } else {
        throw new CoercingParseLiteralException(errorMessage(input, IntValue.class));
    }
}
 
Example #11
Source File: ObjectNodeCoercing.java    From stream-registry with Apache License 2.0 5 votes vote down vote up
@Override
public Object parseLiteral(Object input, Map<String, Object> variables) throws CoercingParseLiteralException {
  if (!(input instanceof ObjectValue)) {
    log.error("Expected 'ObjectValue', got: {}", input);
    throw new CoercingParseLiteralException("Expected 'ObjectValue', got: " + input);
  }
  return JsonCoercingUtil.parseLiteral(input, variables);
}
 
Example #12
Source File: JacksonScalars.java    From graphql-spqr with Apache License 2.0 5 votes vote down vote up
@Override
public FloatNode parseLiteral(Object input) {
    if (input instanceof IntValue) {
        return FloatNode.valueOf(((IntValue) input).getValue().floatValue());
    } if (input instanceof FloatValue) {
        return FloatNode.valueOf(((FloatValue) input).getValue().floatValue());
    } else {
        throw new CoercingParseLiteralException(errorMessage(input, IntValue.class, FloatValue.class));
    }
}
 
Example #13
Source File: JacksonScalars.java    From graphql-spqr with Apache License 2.0 5 votes vote down vote up
@Override
public DoubleNode parseLiteral(Object input) {
    if (input instanceof IntValue) {
        return DoubleNode.valueOf(((IntValue) input).getValue().doubleValue());
    } if (input instanceof FloatValue) {
        return DoubleNode.valueOf(((FloatValue) input).getValue().doubleValue());
    } else {
        throw new CoercingParseLiteralException(errorMessage(input, IntValue.class, FloatValue.class));
    }
}
 
Example #14
Source File: _Any.java    From federation-jvm with MIT License 5 votes vote down vote up
@Nullable
@Override
public Object parseLiteral(Object input) throws CoercingParseLiteralException {
    if (input instanceof NullValue) {
        return null;
    } else if (input instanceof FloatValue) {
        return ((FloatValue) input).getValue();
    } else if (input instanceof StringValue) {
        return ((StringValue) input).getValue();
    } else if (input instanceof IntValue) {
        return ((IntValue) input).getValue();
    } else if (input instanceof BooleanValue) {
        return ((BooleanValue) input).isValue();
    } else if (input instanceof EnumValue) {
        return ((EnumValue) input).getName();
    } else if (input instanceof ArrayValue) {
        return ((ArrayValue) input).getValues()
                .stream()
                .map(this::parseLiteral)
                .collect(Collectors.toList());
    } else if (input instanceof ObjectValue) {
        return ((ObjectValue) input).getObjectFields()
                .stream()
                .collect(Collectors.toMap(ObjectField::getName, f -> parseLiteral(f.getValue())));
    }
    return Assert.assertShouldNeverHappen();
}
 
Example #15
Source File: Scalars.java    From graphql-spqr with Apache License 2.0 5 votes vote down vote up
@Override
public URL parseLiteral(Object input) {
    StringValue string = literalOrException(input, StringValue.class);
    try {
        return new URL(string.getValue());
    } catch (MalformedURLException e) {
        throw new CoercingParseLiteralException("Input string \"" + input + "\" could not be parsed into a URL", e);
    }
}
 
Example #16
Source File: Scalars.java    From besu with Apache License 2.0 5 votes vote down vote up
@Override
public Address parseLiteral(final Object input) throws CoercingParseLiteralException {
  if (!(input instanceof StringValue)) {
    throw new CoercingParseLiteralException("Value is not any Address : '" + input + "'");
  }
  try {
    return Address.fromHexStringStrict(((StringValue) input).getValue());
  } catch (final IllegalArgumentException e) {
    throw new CoercingParseLiteralException("Value is not any Address : '" + input + "'");
  }
}
 
Example #17
Source File: Scalars.java    From besu with Apache License 2.0 5 votes vote down vote up
@Override
public Bytes32 parseLiteral(final Object input) throws CoercingParseLiteralException {
  if (!(input instanceof StringValue)) {
    throw new CoercingParseLiteralException("Value is not any Bytes32 : '" + input + "'");
  }
  try {
    return Bytes32.fromHexStringLenient(((StringValue) input).getValue());
  } catch (final IllegalArgumentException e) {
    throw new CoercingParseLiteralException("Value is not any Bytes32 : '" + input + "'");
  }
}
 
Example #18
Source File: Scalars.java    From besu with Apache License 2.0 5 votes vote down vote up
@Override
public Bytes parseLiteral(final Object input) throws CoercingParseLiteralException {
  if (!(input instanceof StringValue)) {
    throw new CoercingParseLiteralException("Value is not any Bytes : '" + input + "'");
  }
  try {
    return Bytes.fromHexStringLenient(((StringValue) input).getValue());
  } catch (final IllegalArgumentException e) {
    throw new CoercingParseLiteralException("Value is not any Bytes : '" + input + "'");
  }
}
 
Example #19
Source File: Scalars.java    From besu with Apache License 2.0 5 votes vote down vote up
@Override
public UInt256 parseLiteral(final Object input) throws CoercingParseLiteralException {
  try {
    if (input instanceof StringValue) {
      return UInt256.fromHexString(((StringValue) input).getValue());
    } else if (input instanceof IntValue) {
      return UInt256.valueOf(((IntValue) input).getValue());
    }
  } catch (final IllegalArgumentException e) {
    // fall through
  }
  throw new CoercingParseLiteralException("Value is not any BigInt : '" + input + "'");
}
 
Example #20
Source File: Scalars.java    From notification with Apache License 2.0 4 votes vote down vote up
public static CoercingParseLiteralException literalParsingException(
    Object input, Class<?>... allowedTypes) {
  return new CoercingParseLiteralException(errorMessage(input, allowedTypes));
}
 
Example #21
Source File: Scalars.java    From graphql-spqr with Apache License 2.0 4 votes vote down vote up
@Override
public Object parseLiteral(Object input) {
    throw new CoercingParseLiteralException("Class can not be used as input");
}
 
Example #22
Source File: Scalars.java    From graphql-spqr with Apache License 2.0 4 votes vote down vote up
@Override
public Object parseLiteral(Object input) throws CoercingParseLiteralException {
    return parseLiteral(input, Collections.emptyMap());
}
 
Example #23
Source File: Scalars.java    From graphql-spqr with Apache License 2.0 4 votes vote down vote up
@Override
public Object parseLiteral(Object input) throws CoercingParseLiteralException {
    return parseLiteral(input, Collections.emptyMap());
}
 
Example #24
Source File: Scalars.java    From graphql-spqr with Apache License 2.0 4 votes vote down vote up
public static <T extends Value> T literalOrException(Object input, Class<T> valueType) {
    if (valueType.isInstance(input)) {
        return valueType.cast(input);
    }
    throw new CoercingParseLiteralException(errorMessage(input, valueType));
}
 
Example #25
Source File: Scalars.java    From graphql-spqr with Apache License 2.0 4 votes vote down vote up
public static CoercingParseLiteralException literalParsingException(Object input, Class... allowedTypes) {
    return new CoercingParseLiteralException(errorMessage(input, allowedTypes));
}
 
Example #26
Source File: Directives.java    From graphql-spqr with Apache License 2.0 4 votes vote down vote up
@Override
public Object parseLiteral(Object input) {
    throw new CoercingParseLiteralException(ERROR);
}
 
Example #27
Source File: Scalars.java    From notification with Apache License 2.0 4 votes vote down vote up
public static <T extends Value<?>> T literalOrException(Object input, Class<T> valueType) {
  if (valueType.isInstance(input)) {
    return valueType.cast(input);
  }
  throw new CoercingParseLiteralException(errorMessage(input, valueType));
}
 
Example #28
Source File: BigIntScalarTest.java    From besu with Apache License 2.0 4 votes vote down vote up
@Test
public void pareLiteralErrorTest() {
  thrown.expect(CoercingParseLiteralException.class);
  scalar.getCoercing().parseLiteral(str);
}
 
Example #29
Source File: AddressScalarTest.java    From besu with Apache License 2.0 4 votes vote down vote up
@Test
public void pareLiteralErrorTest() {
  thrown.expect(CoercingParseLiteralException.class);
  scalar.getCoercing().parseLiteral(addrStr);
}
 
Example #30
Source File: AddressScalarTest.java    From besu with Apache License 2.0 4 votes vote down vote up
@Test
public void pareLiteralErrorTest2() {
  thrown.expect(CoercingParseLiteralException.class);
  scalar.getCoercing().parseLiteral(invalidAddrValue);
}