protected ObjectTypeDefinition createObjectTypeDefinition(GraphqlParser.ObjectTypeDefinitionContext ctx) { ObjectTypeDefinition.Builder def = ObjectTypeDefinition.newObjectTypeDefinition(); def.name(ctx.name().getText()); addCommonData(def, ctx); def.description(newDescription(ctx.description())); def.directives(createDirectives(ctx.directives())); GraphqlParser.ImplementsInterfacesContext implementsInterfacesContext = ctx.implementsInterfaces(); List<Type> implementz = new ArrayList<>(); while (implementsInterfacesContext != null) { List<TypeName> typeNames = implementsInterfacesContext.typeName().stream().map(this::createTypeName).collect(toList()); implementz.addAll(0, typeNames); implementsInterfacesContext = implementsInterfacesContext.implementsInterfaces(); } def.implementz(implementz); if (ctx.fieldsDefinition() != null) { def.fieldDefinitions(createFieldDefinitions(ctx.fieldsDefinition())); } return def.build(); }
protected ObjectTypeDefinition createObjectTypeDefinition(GraphqlParser.ObjectTypeDefinitionContext ctx) { ObjectTypeDefinition.Builder def = ObjectTypeDefinition.newObjectTypeDefinition(); def.name(ctx.name().getText()); addCommonData(def, ctx); def.description(newDescription(ctx.description())); def.directives(createDirectives(ctx.directives())); GraphqlParser.ImplementsInterfacesContext implementsInterfacesContext = ctx.implementsInterfaces(); List<Type> implementz = new ArrayList<>(); while (implementsInterfacesContext != null) { List<TypeName> typeNames = implementsInterfacesContext.typeName().stream().map(this::createTypeName).collect(toList()); implementz.addAll(0, typeNames); implementsInterfacesContext = implementsInterfacesContext.implementsInterfaces(); } def.implementz(implementz); if (ctx.fieldsDefinition() != null) { def.fieldDefinitions(createFieldDefinitions(ctx.fieldsDefinition())); } return def.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 TraversalControl visitObjectTypeDefinition(ObjectTypeDefinition node, TraverserContext<Node> context) { ObjectTypeDefinition changedNode = node.transform(builder -> { builder.directives(sort(node.getDirectives(), comparing(Directive::getName))); builder.implementz(sort(node.getImplements(), comparingTypes())); builder.fieldDefinitions(sort(node.getFieldDefinitions(), comparing(FieldDefinition::getName))); }); return changeNode(context, changedNode); }
@Override public TraversalControl visitObjectTypeDefinition(ObjectTypeDefinition node, TraverserContext<Node> context) { ObjectTypeDefinition changedNode = node.transform(builder -> { builder.directives(sort(node.getDirectives(), comparing(Directive::getName))); builder.implementz(sort(node.getImplements(), comparingTypes())); builder.fieldDefinitions(sort(node.getFieldDefinitions(), comparing(FieldDefinition::getName))); }); return changeNode(context, changedNode); }
@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)); }); }