Skip to content

Commit 3e06062

Browse files
committed
add normalized arguments to NQ
1 parent 4d52fd0 commit 3e06062

5 files changed

Lines changed: 424 additions & 0 deletions

File tree

‎src/main/java/graphql/normalized/FieldCollectorNormalizedQuery.java‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
public class FieldCollectorNormalizedQuery {
4242

4343
private final ConditionalNodes conditionalNodes = new ConditionalNodes();
44+
private final NormalizedValuesResolver normalizedValuesResolver = new NormalizedValuesResolver();
4445
private final ValuesResolver valuesResolver = new ValuesResolver();
4546

4647
public static class CollectFieldResult {
@@ -207,9 +208,11 @@ private void collectField(FieldCollectorNormalizedQueryParams parameters,
207208
}
208209

209210
Map<String, Object> argumentValues = valuesResolver.getArgumentValues(fieldDefinition.getArguments(), field.getArguments(), parameters.getVariables());
211+
Map<String, NormalizedInputValue> normalizedArgumentValues = normalizedValuesResolver.getArgumentValues(fieldDefinition.getArguments(), field.getArguments(), parameters.getVariables());
210212
NormalizedField newFieldWTC = NormalizedField.newQueryExecutionField()
211213
.alias(field.getAlias())
212214
.arguments(argumentValues)
215+
.normalizedArguments(normalizedArgumentValues)
213216
.objectType(objectType)
214217
.fieldDefinition(fieldDefinition)
215218
.level(level)

‎src/main/java/graphql/normalized/NormalizedField.java‎

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
@Internal
2222
public class NormalizedField {
2323
private final String alias;
24+
private final Map<String, NormalizedInputValue> normalizedArguments;
2425
private final Map<String, Object> arguments;
2526
private final GraphQLObjectType objectType;
2627
private final GraphQLFieldDefinition fieldDefinition;
@@ -33,6 +34,7 @@ public class NormalizedField {
3334
private NormalizedField(Builder builder) {
3435
this.alias = builder.alias;
3536
this.arguments = builder.arguments;
37+
this.normalizedArguments = builder.normalizedArguments;
3638
this.objectType = builder.objectType;
3739
this.fieldDefinition = assertNotNull(builder.fieldDefinition);
3840
this.children = builder.children;
@@ -79,6 +81,14 @@ public boolean isConditional() {
7981
return isConditional;
8082
}
8183

84+
public NormalizedInputValue getNormalizedArgument(String name) {
85+
return normalizedArguments.get(name);
86+
}
87+
88+
public Map<String, NormalizedInputValue> getNormalizedArguments() {
89+
return normalizedArguments;
90+
}
91+
8292
public Map<String, Object> getArguments() {
8393
return arguments;
8494
}
@@ -213,6 +223,7 @@ public static class Builder {
213223
private int level;
214224
private NormalizedField parent;
215225
private String alias;
226+
private Map<String, NormalizedInputValue> normalizedArguments = Collections.emptyMap();
216227
private Map<String, Object> arguments = Collections.emptyMap();
217228

218229
private Builder() {
@@ -221,6 +232,7 @@ private Builder() {
221232

222233
private Builder(NormalizedField existing) {
223234
this.alias = existing.alias;
235+
this.normalizedArguments = existing.normalizedArguments;
224236
this.arguments = existing.arguments;
225237
this.objectType = existing.getObjectType();
226238
this.fieldDefinition = existing.getFieldDefinition();
@@ -240,6 +252,11 @@ public Builder alias(String alias) {
240252
return this;
241253
}
242254

255+
public Builder normalizedArguments(Map<String, NormalizedInputValue> arguments) {
256+
this.normalizedArguments = arguments == null ? Collections.emptyMap() : arguments;
257+
return this;
258+
}
259+
243260
public Builder arguments(Map<String, Object> arguments) {
244261
this.arguments = arguments == null ? Collections.emptyMap() : arguments;
245262
return this;
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package graphql.normalized;
2+
3+
public class NormalizedInputValue {
4+
private final String type;
5+
private final Object value;
6+
7+
public NormalizedInputValue(String type, Object value) {
8+
this.type = type;
9+
this.value = value;
10+
}
11+
12+
// this can be a wrapped type String
13+
public String getType() {
14+
return type;
15+
}
16+
17+
public Object getValue() {
18+
return value;
19+
}
20+
}

0 commit comments

Comments
 (0)