Skip to content

Commit 7eb36aa

Browse files
committed
wip of introducing two new coercing functions
1 parent b9caa0b commit 7eb36aa

12 files changed

Lines changed: 583 additions & 408 deletions

src/main/java/graphql/execution/ValuesResolver.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,22 @@ public Map<String, Object> getArgumentValues(GraphQLCodeRegistry codeRegistry,
103103
return getArgumentValuesImpl(codeRegistry, argumentTypes, arguments, coercedVariables, null, ValueMode.COERCED);
104104
}
105105

106+
public static Value externalInputValueToLiteral(Object externalValue, GraphQLInputType inputType) {
107+
return new ValuesResolver().externalInputValueToLiteral(externalValue, inputType);
108+
}
109+
110+
// public static Object literalToExternalInputValue(Value literal, GraphQLInputType inputType) {
111+
// return null;
112+
// }
113+
//
114+
public static Value externalInputValueToLiteralLegacy(Object defaultValue, GraphQLInputType inputType) {
115+
return null;
116+
}
117+
118+
private Value externalInputValueToLiteralImpl(Object value, GraphQLInputType type) {
119+
return null;
120+
}
121+
106122

107123
private Map<String, Object> coerceVariableValuesImpl(GraphQLSchema schema,
108124
List<VariableDefinition> variableDefinitions,
@@ -500,4 +516,6 @@ private Map<String, ObjectField> mapObjectValueFieldsByName(ObjectValue inputVal
500516
}
501517
return inputValueFieldsByName;
502518
}
519+
520+
503521
}

src/main/java/graphql/introspection/Introspection.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
import graphql.Assert;
66
import graphql.Internal;
77
import graphql.PublicApi;
8+
import graphql.execution.ValuesResolver;
89
import graphql.language.AstPrinter;
9-
import graphql.language.AstValueHelper;
10+
import graphql.language.Value;
1011
import graphql.schema.FieldCoordinates;
1112
import graphql.schema.GraphQLArgument;
1213
import graphql.schema.GraphQLCodeRegistry;
@@ -162,10 +163,10 @@ public enum TypeKind {
162163
Object type = environment.getSource();
163164
if (type instanceof GraphQLArgument) {
164165
GraphQLArgument inputField = (GraphQLArgument) type;
165-
return inputField.getDefaultValue() != null ? print(inputField.getDefaultValue(), inputField.getType()) : null;
166+
return inputField.getDefaultValue() != null ? printDefaultValue(inputField.getDefaultValue(), inputField.getType()) : null;
166167
} else if (type instanceof GraphQLInputObjectField) {
167168
GraphQLInputObjectField inputField = (GraphQLInputObjectField) type;
168-
return inputField.getDefaultValue() != null ? print(inputField.getDefaultValue(), inputField.getType()) : null;
169+
return inputField.getDefaultValue() != null ? printDefaultValue(inputField.getDefaultValue(), inputField.getType()) : null;
169170
}
170171
return null;
171172
});
@@ -182,8 +183,11 @@ public enum TypeKind {
182183
register(__InputValue, "description", descriptionDataFetcher);
183184
}
184185

185-
private static String print(Object value, GraphQLInputType type) {
186-
return AstPrinter.printAst(AstValueHelper.astFromValue(value, type));
186+
private static String printDefaultValue(Object value, GraphQLInputType type) {
187+
if (value instanceof Value) {
188+
return AstPrinter.printAst((Value) value);
189+
}
190+
return AstPrinter.printAst(ValuesResolver.externalInputValueToLiteralLegacy(value, type));
187191
}
188192

189193

src/main/java/graphql/introspection/IntrospectionResultToSchema.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import graphql.ExecutionResult;
44
import graphql.PublicApi;
55
import graphql.language.Argument;
6-
import graphql.language.AstValueHelper;
76
import graphql.language.Description;
87
import graphql.language.Directive;
98
import graphql.language.DirectiveDefinition;
@@ -27,7 +26,6 @@
2726
import graphql.language.TypeDefinition;
2827
import graphql.language.TypeName;
2928
import graphql.language.UnionTypeDefinition;
30-
import graphql.language.Value;
3129
import graphql.schema.idl.ScalarInfo;
3230

3331
import java.util.ArrayList;
@@ -329,8 +327,9 @@ private List<InputValueDefinition> createInputValueDefinitions(List<Map<String,
329327

330328
String valueLiteral = (String) arg.get("defaultValue");
331329
if (valueLiteral != null) {
332-
Value defaultValue = AstValueHelper.valueFromAst(valueLiteral);
333-
inputValueDefinition.defaultValue(defaultValue);
330+
// Value defaultValue = ValuesResolver.literalToExternalInputValue(valueLiteral,);
331+
// TODO
332+
// inputValueDefinition.defaultValue(defaultValue);
334333
}
335334
result.add(inputValueDefinition.build());
336335
}

src/main/java/graphql/introspection/IntrospectionWithDirectivesSupport.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
import com.google.common.collect.ImmutableSet;
44
import graphql.PublicApi;
55
import graphql.PublicSpi;
6+
import graphql.execution.ValuesResolver;
67
import graphql.language.AstPrinter;
7-
import graphql.language.AstValueHelper;
88
import graphql.schema.DataFetcher;
99
import graphql.schema.GraphQLArgument;
1010
import graphql.schema.GraphQLCodeRegistry;
@@ -195,7 +195,7 @@ private GraphQLObjectType addAppliedDirectives(GraphQLObjectType originalType, G
195195
DataFetcher<?> argValueDF = env -> {
196196
final GraphQLArgument argument = env.getSource();
197197
Object value = argument.getValue();
198-
return AstPrinter.printAst(AstValueHelper.astFromValue(value, argument.getType()));
198+
return AstPrinter.printAst(ValuesResolver.externalInputValueToLiteralLegacy(value, argument.getType()));
199199
};
200200
codeRegistry.dataFetcher(coordinates(objectType, "appliedDirectives"), df);
201201
codeRegistry.dataFetcher(coordinates(appliedDirectiveType, "args"), argsDF);

0 commit comments

Comments
 (0)