private Builder(EnumValueDefinition existing) { this.sourceLocation = existing.getSourceLocation(); this.comments = existing.getComments(); this.name = existing.getName(); this.description = existing.getDescription(); this.directives = existing.getDirectives(); this.ignoredChars = existing.getIgnoredChars(); }
@Override public EnumValueDefinition deepCopy() { return new EnumValueDefinition(name, deepCopy(directives), description, getSourceLocation(), getComments(), getIgnoredChars()); }
@SuppressWarnings("unchecked") EnumTypeDefinition createEnum(Map<String, Object> input) { assertTrue(input.get("kind").equals("ENUM"), "wrong input"); EnumTypeDefinition.Builder enumTypeDefinition = EnumTypeDefinition.newEnumTypeDefinition().name((String) input.get("name")); enumTypeDefinition.comments(toComment((String) input.get("description"))); List<Map<String, Object>> enumValues = (List<Map<String, Object>>) input.get("enumValues"); for (Map<String, Object> enumValue : enumValues) { EnumValueDefinition.Builder enumValueDefinition = EnumValueDefinition.newEnumValueDefinition().name((String) enumValue.get("name")); enumValueDefinition.comments(toComment((String) enumValue.get("description"))); createDeprecatedDirective(enumValue, enumValueDefinition); enumTypeDefinition.enumValueDefinition(enumValueDefinition.build()); } return enumTypeDefinition.build(); }
private NodePrinter<EnumValueDefinition> enumValueDefinition() { return (out, node) -> { out.printf("%s", comments(node)); out.printf("%s", spaced( node.getName(), directives(node.getDirectives()) )); }; }
public NonUniqueDirectiveError(TypeDefinition typeDefinition, EnumValueDefinition enumValueDefinition, String directiveName) { super(typeDefinition, format("The '%s' type with enum value '%s' %s has declared a directive with a non unique name '%s'", typeDefinition.getName(), enumValueDefinition.getName(), lineCol(typeDefinition), directiveName)); }
private GraphQLEnumValueDefinition buildEnumValue(BuildContext buildCtx, EnumTypeDefinition typeDefinition, EnumValuesProvider enumValuesProvider, EnumValueDefinition evd) { buildCtx.enterNode(evd); String description = schemaGeneratorHelper.buildDescription(evd, evd.getDescription()); String deprecation = schemaGeneratorHelper.buildDeprecationReason(evd.getDirectives()); Object value; if (enumValuesProvider != null) { value = enumValuesProvider.getValue(evd.getName()); assertNotNull(value, "EnumValuesProvider for %s returned null for %s", typeDefinition.getName(), evd.getName()); } else { value = evd.getName(); } GraphQLEnumValueDefinition valueDefinition = newEnumValueDefinition() .name(evd.getName()) .value(value) .description(description) .deprecationReason(deprecation) .withDirectives( buildDirectives(evd.getDirectives(), emptyList(), ENUM_VALUE, buildCtx.getDirectiveDefinitions()) ) .build(); valueDefinition = directiveBehaviour.onEnumValue(valueDefinition, buildCtx.mkBehaviourParams()); return buildCtx.exitNode(valueDefinition); }
@Override public EnumValueDefinition withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> builder .directives(newChildren.getChildren(CHILD_DIRECTIVES)) ); }
public EnumValueDefinition build() { EnumValueDefinition enumValueDefinition = new EnumValueDefinition(name, directives, description, sourceLocation, comments, ignoredChars); return enumValueDefinition; } }
private void checkEnumValues(List<GraphQLError> errors, EnumTypeDefinition enumType, List<EnumValueDefinition> enumValueDefinitions) { // enum unique ness checkNamedUniqueness(errors, enumValueDefinitions, EnumValueDefinition::getName, (name, inputValueDefinition) -> new NonUniqueNameError(enumType, inputValueDefinition)); // directive checks enumValueDefinitions.forEach(enumValue -> { BiFunction<String, Directive, NonUniqueDirectiveError> errorFunction = (directiveName, directive) -> new NonUniqueDirectiveError(enumType, enumValue, directiveName); checkNamedUniqueness(errors, enumValue.getDirectives(), Directive::getName, errorFunction); }); enumValueDefinitions.forEach(enumValue -> enumValue.getDirectives().forEach(directive -> { checkDeprecatedDirective(errors, directive, () -> new InvalidDeprecationDirectiveError(enumType, enumValue)); BiFunction<String, Argument, NonUniqueArgumentError> errorFunction = (argumentName, argument) -> new NonUniqueArgumentError(enumType, enumValue, argumentName); checkNamedUniqueness(errors, directive.getArguments(), Argument::getName, errorFunction); })); }
public InvalidDeprecationDirectiveError(TypeDefinition typeDefinition, EnumValueDefinition enumValueDefinition) { super(typeDefinition, format("The %s type with enum value '%s' %s has declared an invalid deprecation directive. Its must be @deprecated(reason : \"xyz\")", typeDefinition.getName(), enumValueDefinition.getName(), lineCol(typeDefinition))); }
.typeName(oldDef.getName()) .typeKind(getTypeKind(oldDef)) .components(oldEnum.getName()) .reasonMsg("The new API is missing an enum value '%s'", oldEnum.getName()) .build()); } else { checkDirectives(ctx, oldDef, oldEnum.getDirectives(), newEnum.get().getDirectives());
private GraphQLEnumValueDefinition buildEnumValue(BuildContext buildCtx, EnumTypeDefinition typeDefinition, EnumValuesProvider enumValuesProvider, EnumValueDefinition evd) { buildCtx.enterNode(evd); String description = schemaGeneratorHelper.buildDescription(evd, evd.getDescription()); String deprecation = schemaGeneratorHelper.buildDeprecationReason(evd.getDirectives()); Object value; if (enumValuesProvider != null) { value = enumValuesProvider.getValue(evd.getName()); assertNotNull(value, "EnumValuesProvider for %s returned null for %s", typeDefinition.getName(), evd.getName()); } else { value = evd.getName(); } GraphQLEnumValueDefinition valueDefinition = newEnumValueDefinition() .name(evd.getName()) .value(value) .description(description) .deprecationReason(deprecation) .withDirectives( buildDirectives(evd.getDirectives(), emptyList(), ENUM_VALUE, buildCtx.getDirectiveDefinitions()) ) .build(); valueDefinition = directiveBehaviour.onEnumValue(valueDefinition, buildCtx.mkBehaviourParams()); return buildCtx.exitNode(valueDefinition); }
@Override public EnumValueDefinition withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> builder .directives(newChildren.getChildren(CHILD_DIRECTIVES)) ); }
public EnumValueDefinition build() { EnumValueDefinition enumValueDefinition = new EnumValueDefinition(name, directives, description, sourceLocation, comments, ignoredChars); return enumValueDefinition; } }
private void checkEnumValues(List<GraphQLError> errors, EnumTypeDefinition enumType, List<EnumValueDefinition> enumValueDefinitions) { // enum unique ness checkNamedUniqueness(errors, enumValueDefinitions, EnumValueDefinition::getName, (name, inputValueDefinition) -> new NonUniqueNameError(enumType, inputValueDefinition)); // directive checks enumValueDefinitions.forEach(enumValue -> { BiFunction<String, Directive, NonUniqueDirectiveError> errorFunction = (directiveName, directive) -> new NonUniqueDirectiveError(enumType, enumValue, directiveName); checkNamedUniqueness(errors, enumValue.getDirectives(), Directive::getName, errorFunction); }); enumValueDefinitions.forEach(enumValue -> enumValue.getDirectives().forEach(directive -> { checkDeprecatedDirective(errors, directive, () -> new InvalidDeprecationDirectiveError(enumType, enumValue)); BiFunction<String, Argument, NonUniqueArgumentError> errorFunction = (argumentName, argument) -> new NonUniqueArgumentError(enumType, enumValue, argumentName); checkNamedUniqueness(errors, directive.getArguments(), Argument::getName, errorFunction); })); }
private Builder(EnumValueDefinition existing) { this.sourceLocation = existing.getSourceLocation(); this.comments = existing.getComments(); this.name = existing.getName(); this.description = existing.getDescription(); this.directives = existing.getDirectives(); this.ignoredChars = existing.getIgnoredChars(); }
public NonUniqueNameError(TypeDefinition typeDefinition, EnumValueDefinition enumValueDefinition) { super(typeDefinition, format("The type '%s' %s has declared an enum value with a non unique name '%s'", typeDefinition.getName(), lineCol(typeDefinition), enumValueDefinition.getName())); }
private void checkDirectives(DirectiveLocation expectedLocation, List<GraphQLError> errors, TypeDefinition<?> typeDef) { checkDirectives(expectedLocation, errors, typeRegistry, typeDef, typeDef.getName(), typeDef.getDirectives()); if (typeDef instanceof ObjectTypeDefinition) { List<FieldDefinition> fieldDefinitions = ((ObjectTypeDefinition) typeDef).getFieldDefinitions(); checkFieldsDirectives(errors, typeRegistry, fieldDefinitions); } if (typeDef instanceof InterfaceTypeDefinition) { List<FieldDefinition> fieldDefinitions = ((InterfaceTypeDefinition) typeDef).getFieldDefinitions(); checkFieldsDirectives(errors, typeRegistry, fieldDefinitions); } if (typeDef instanceof EnumTypeDefinition) { List<EnumValueDefinition> enumValueDefinitions = ((EnumTypeDefinition) typeDef).getEnumValueDefinitions(); enumValueDefinitions.forEach(definition -> checkDirectives(ENUM_VALUE, errors, typeRegistry, definition, definition.getName(), definition.getDirectives())); } if (typeDef instanceof InputObjectTypeDefinition) { List<InputValueDefinition> inputValueDefinitions = ((InputObjectTypeDefinition) typeDef).getInputValueDefinitions(); inputValueDefinitions.forEach(definition -> checkDirectives(INPUT_FIELD_DEFINITION, errors, typeRegistry, definition, definition.getName(), definition.getDirectives())); } }
@Override public EnumValueDefinition deepCopy() { return new EnumValueDefinition(name, deepCopy(directives), description, getSourceLocation(), getComments(), getIgnoredChars()); }
protected EnumValueDefinition createEnumValueDefinition(GraphqlParser.EnumValueDefinitionContext ctx) { EnumValueDefinition.Builder def = EnumValueDefinition.newEnumValueDefinition(); def.name(ctx.enumValue().getText()); addCommonData(def, ctx); def.description(newDescription(ctx.description())); def.directives(createDirectives(ctx.directives())); return def.build(); }