@SuppressWarnings("unchecked") ObjectTypeDefinition createObject(Map<String, Object> input) { assertTrue(input.get("kind").equals("OBJECT"), "wrong input"); ObjectTypeDefinition.Builder objectTypeDefinition = ObjectTypeDefinition.newObjectTypeDefinition().name((String) input.get("name")); objectTypeDefinition.comments(toComment((String) input.get("description"))); if (input.containsKey("interfaces")) { objectTypeDefinition.implementz( ((List<Map<String, Object>>) input.get("interfaces")).stream() .map(this::createTypeIndirection) .collect(Collectors.toList()) ); } List<Map<String, Object>> fields = (List<Map<String, Object>>) input.get("fields"); objectTypeDefinition.fieldDefinitions(createFields(fields)); return objectTypeDefinition.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(); }
@SuppressWarnings("unchecked") ObjectTypeDefinition createObject(Map<String, Object> input) { assertTrue(input.get("kind").equals("OBJECT"), "wrong input"); ObjectTypeDefinition.Builder objectTypeDefinition = ObjectTypeDefinition.newObjectTypeDefinition().name((String) input.get("name")); objectTypeDefinition.comments(toComment((String) input.get("description"))); if (input.containsKey("interfaces")) { objectTypeDefinition.implementz( ((List<Map<String, Object>>) input.get("interfaces")).stream() .map(this::createTypeIndirection) .collect(Collectors.toList()) ); } List<Map<String, Object>> fields = (List<Map<String, Object>>) input.get("fields"); objectTypeDefinition.fieldDefinitions(createFields(fields)); return objectTypeDefinition.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)); }); }