public NodeChildrenContainer build() { return new NodeChildrenContainer(this.children); } }
@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)) ); }
public static void assertNewChildrenAreEmpty(NodeChildrenContainer newChildren) { if (!newChildren.isEmpty()) { throw new IllegalArgumentException("Cannot pass non-empty newChildren to Node that doesn't hold children"); } }
@Override public NodeChildrenContainer getNamedChildren() { return newNodeChildrenContainer().build(); }
@Override public Map<String, List<Node>> getNamedChildren(Node node) { return node.getNamedChildren().getChildren(); }
@Override public VariableDefinition withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> builder .type(newChildren.getChildOrNull(CHILD_TYPE)) .defaultValue(newChildren.getChildOrNull(CHILD_DEFAULT_VALUE)) ); }
public static Node removeChild(Node node, NodeLocation childLocationToRemove) { NodeChildrenContainer namedChildren = node.getNamedChildren(); NodeChildrenContainer newChildren = namedChildren.transform(builder -> builder.removeChild(childLocationToRemove.getName(), childLocationToRemove.getIndex())); return node.withNewChildren(newChildren); } }
@Override public NodeChildrenContainer getNamedChildren() { return newNodeChildrenContainer().build(); }
@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 ListType withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> builder .type(newChildren.getChildOrNull(CHILD_TYPE)) ); }
public static Node removeChild(Node node, NodeLocation childLocationToRemove) { NodeChildrenContainer namedChildren = node.getNamedChildren(); NodeChildrenContainer newChildren = namedChildren.transform(builder -> builder.removeChild(childLocationToRemove.getName(), childLocationToRemove.getIndex())); return node.withNewChildren(newChildren); } }
@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 NodeChildrenContainer getNamedChildren() { return newNodeChildrenContainer().build(); }
@Override public SchemaDefinition withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> builder .directives(newChildren.getChildren(CHILD_DIRECTIVES)) .operationTypeDefinitions(newChildren.getChildren(CHILD_OPERATION_TYPE_DEFINITIONS)) ); }
@Override public ObjectField withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> builder .value(newChildren.getChildOrNull(CHILD_VALUE)) ); }
public static void assertNewChildrenAreEmpty(NodeChildrenContainer newChildren) { if (!newChildren.isEmpty()) { throw new IllegalArgumentException("Cannot pass non-empty newChildren to Node that doesn't hold children"); } }
public NodeChildrenContainer build() { return new NodeChildrenContainer(this.children); } }
@Override public OperationDefinition withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> builder .variableDefinitions(newChildren.getChildren(CHILD_VARIABLE_DEFINITIONS)) .directives(newChildren.getChildren(CHILD_DIRECTIVES)) .selectionSet(newChildren.getChildOrNull(CHILD_SELECTION_SET)) ); }
@Override public NodeChildrenContainer getNamedChildren() { return newNodeChildrenContainer().build(); }
@Override public DirectiveDefinition withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> builder .inputValueDefinitions(newChildren.getChildren(CHILD_INPUT_VALUE_DEFINITIONS)) .directiveLocations(newChildren.getChildren(CHILD_DIRECTIVE_LOCATION)) ); }