private String type(Type type) { if (type instanceof NonNullType) { NonNullType inner = (NonNullType) type; return wrap("", type(inner.getType()), "!"); } else if (type instanceof ListType) { ListType inner = (ListType) type; return wrap("[", type(inner.getType()), "]"); } else { TypeName inner = (TypeName) type; return inner.getName(); } }
private SelectionSet sortSelectionSet(SelectionSet selectionSet) { if (selectionSet == null) { return null; } List<Selection> selections = sort(selectionSet.getSelections(), comparingSelections()); return selectionSet.transform(builder -> builder.selections(selections)); }
@Override public VariableDefinition withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> builder .type(newChildren.getChildOrNull(CHILD_TYPE)) .defaultValue(newChildren.getChildOrNull(CHILD_DEFAULT_VALUE)) ); }
@Override public InlineFragment withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> builder .typeCondition(newChildren.getChildOrNull(CHILD_TYPE_CONDITION)) .directives(newChildren.getChildren(CHILD_DIRECTIVES)) .selectionSet(newChildren.getChildOrNull(CHILD_SELECTION_SET)) ); }
@Override public FieldDefinition withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> builder .type(newChildren.getChildOrNull(CHILD_TYPE)) .inputValueDefinitions(newChildren.getChildren(CHILD_INPUT_VALUE_DEFINITION)) .directives(newChildren.getChildren(CHILD_DIRECTIVES)) ); }
@Override public InputValueDefinition withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> builder .type(newChildren.getChildOrNull(CHILD_TYPE)) .defaultValue(newChildren.getChildOrNull(CHILD_DEFAULT_VALUE)) .directives(newChildren.getChildren(CHILD_DIRECTIVES)) ); }
@Override public ObjectTypeDefinition withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> { builder.implementz(newChildren.getChildren(CHILD_IMPLEMENTZ)) .directives(newChildren.getChildren(CHILD_DIRECTIVES)) .fieldDefinitions(newChildren.getChildren(CHILD_FIELD_DEFINITIONS)); }); }
@Override public SchemaDefinition withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> builder .directives(newChildren.getChildren(CHILD_DIRECTIVES)) .operationTypeDefinitions(newChildren.getChildren(CHILD_OPERATION_TYPE_DEFINITIONS)) ); }
@Override public DirectiveDefinition withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> builder .inputValueDefinitions(newChildren.getChildren(CHILD_INPUT_VALUE_DEFINITIONS)) .directiveLocations(newChildren.getChildren(CHILD_DIRECTIVE_LOCATION)) ); }
@Override public InterfaceTypeDefinition withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> builder .definitions(newChildren.getChildren(CHILD_DEFINITIONS)) .directives(newChildren.getChildren(CHILD_DIRECTIVES)) ); }
@Override public ArrayValue withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> builder .values(newChildren.getChildren(CHILD_VALUES)) ); }
@Override public SelectionSet withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> builder .selections(newChildren.getChildren(CHILD_SELECTIONS)) ); }
@Override public Argument withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> builder .value(newChildren.getChildOrNull(CHILD_VALUE)) ); }
@Override public EnumValueDefinition withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> builder .directives(newChildren.getChildren(CHILD_DIRECTIVES)) ); }
@Override public NonNullType withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> builder .type((Type) newChildren.getChildOrNull(CHILD_TYPE)) ); }
@Override public OperationTypeDefinition withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> builder .typeName(newChildren.getChildOrNull(CHILD_TYPE_NAME)) ); }
@Override public ObjectValue withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> builder .objectFields(newChildren.getChildren(CHILD_OBJECT_FIELDS)) ); }
@Override public Directive withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> builder .arguments(newChildren.getChildren(CHILD_ARGUMENTS)) ); }
@Override public ScalarTypeDefinition withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> builder .directives(newChildren.getChildren(CHILD_DIRECTIVES)) ); }
@Override public FragmentSpread withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> builder .directives(newChildren.getChildren(CHILD_DIRECTIVES)) ); }