private void addBackPressureParameter(ExtensionDeclaration extensionDeclaration, SourceDeclaration sourceDeclaration, BackPressureStrategyModelProperty property) { ParameterDeclaration parameter = new ParameterDeclaration(BACK_PRESSURE_STRATEGY_PARAMETER_NAME); parameter.setDescription(BACK_PRESSURE_STRATEGY_PARAMETER_DESCRIPTION); parameter.setRequired(false); parameter.setDefaultValue(property.getDefaultMode()); parameter.setExpressionSupport(NOT_SUPPORTED); parameter.setLayoutModel(LayoutModel.builder().tabName(ADVANCED_TAB).build()); MetadataType type = BaseTypeBuilder.create(JAVA).stringType() .id(format("%s-%s-backPressureStrategy", extensionDeclaration.getName(), sourceDeclaration.getName())) .with(new EnumAnnotation<>(property.getSupportedModes().stream().map(BackPressureMode::name).toArray(String[]::new))) .build(); parameter.setType(type, false); sourceDeclaration.getParameterGroup(DEFAULT_GROUP_NAME).addParameter(parameter); }
@Test public void enumTypeOperation() { StringType type = builder.stringType().with(new EnumAnnotation<>(new String[] {"val"})).build(); mockOutput(operation, type); enricher.enrich(extensionLoadingContext); assertThat(getGroupParameters(operation), hasSize(0)); }
public StringTypeBuilder boundary(Number minLength, Number maxLength) { return with(new LengthAnnotation(minLength, maxLength)); }
public StringTypeBuilder length(Integer length) { return with(new LengthAnnotation(length, length)); } }
public StringTypeBuilder id(String typeIdentifier) { return with(new TypeIdAnnotation(typeIdentifier)); }
public StringTypeBuilder pattern(String pattern) { return with(new RegexPatternAnnotation(pattern)); }
public StringTypeBuilder defaultValue(String defaultValue) { return with(new DefaultValueAnnotation(defaultValue)); }
public StringTypeBuilder enumOf(String... values) { return with(new EnumAnnotation<>(values)); }
public StringTypeBuilder enumLabelsOf(String... labels) { return with(new EnumLabelsAnnotation(labels)); }
@Override public TypeBuilder<?> handleClass(Class<?> clazz, List<Type> genericTypes, TypeHandlerManager typeHandlerManager, ParsingContext context, BaseTypeBuilder typeBuilder) { StringTypeBuilder builder = typeBuilder.stringType(); if (char.class.isAssignableFrom(clazz) || Character.class.isAssignableFrom(clazz) || Class.class.isAssignableFrom(clazz)) { builder.with(new ClassInformationAnnotation(clazz)); } if (char.class.isAssignableFrom(clazz) || Character.class.isAssignableFrom(clazz)) { builder.with(new LengthAnnotation(CHAR_LENGTH, CHAR_LENGTH)); } return builder; } }
@Test public void getEnumId() { MetadataType enumType = typeBuilder.stringType().id(TimeUnit.class.getName()).with(new EnumAnnotation<>(TimeUnit.values())).build(); assertThat(getId(enumType).get(), is(TimeUnit.class.getName())); } }
private void addBackPressureParameter(ExtensionDeclaration extensionDeclaration, SourceDeclaration sourceDeclaration, BackPressureStrategyModelProperty property) { ParameterDeclaration parameter = new ParameterDeclaration(BACK_PRESSURE_STRATEGY_PARAMETER_NAME); parameter.setDescription(BACK_PRESSURE_STRATEGY_PARAMETER_DESCRIPTION); parameter.setRequired(false); parameter.setDefaultValue(property.getDefaultMode()); parameter.setExpressionSupport(NOT_SUPPORTED); parameter.setLayoutModel(LayoutModel.builder().tabName(ADVANCED_TAB).build()); MetadataType type = BaseTypeBuilder.create(JAVA).stringType() .id(format("%s-%s-backPressureStrategy", extensionDeclaration.getName(), sourceDeclaration.getName())) .with(new EnumAnnotation<>(property.getSupportedModes().stream().map(BackPressureMode::name).toArray(String[]::new))) .build(); parameter.setType(type, false); sourceDeclaration.getParameterGroup(DEFAULT_GROUP_NAME).addParameter(parameter); }