@PublicApi public class MergedFields extends java.lang.Object
query Foo {
bar
...BarFragment
}
fragment BarFragment on Query {
bar
}
Another example:
{
me{fistName}
me{lastName}
}
Here the me field is merged together including the sub selections.
A third example with different directives:
{
foo @someDirective
foo @anotherDirective
}
These examples make clear that you need to consider all merged fields together to have the full picture.
The actual logic when fields can successfully merged together is implemented in {#graphql.validation.rules.OverlappingFieldsCanBeMerged}Modifier and Type | Class and Description |
---|---|
static class |
MergedFields.Builder |
Constructor and Description |
---|
MergedFields(java.util.List<Field> fields) |
Modifier and Type | Method and Description |
---|---|
java.util.List<Argument> |
getArguments()
All merged fields share the same arguments.
|
java.util.List<Field> |
getFields()
All merged fields
|
java.lang.String |
getName()
All merged fields have the same name.
|
Field |
getSingleField()
The first of the merged fields.
|
static MergedFields.Builder |
newMergedFields() |
static MergedFields.Builder |
newMergedFields(Field field) |
static MergedFields.Builder |
newMergedFields(java.util.List<Field> fields) |
MergedFields |
transform(java.util.function.Consumer<MergedFields.Builder> builderConsumer) |
public MergedFields(java.util.List<Field> fields)
public java.lang.String getName()
public Field getSingleField()
public java.util.List<Argument> getArguments()
public java.util.List<Field> getFields()
public static MergedFields.Builder newMergedFields()
public static MergedFields.Builder newMergedFields(Field field)
public static MergedFields.Builder newMergedFields(java.util.List<Field> fields)
public MergedFields transform(java.util.function.Consumer<MergedFields.Builder> builderConsumer)