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); }
@Override public TypeBuilder<?> handleClass(Class<?> clazz, List<Type> genericTypes, TypeHandlerManager typeHandlerManager, ParsingContext context, BaseTypeBuilder<?> typeBuilder) { final StringTypeBuilder<?> stringType = typeBuilder.stringType(); if (clazz.getCanonicalName() != null) { stringType.id(clazz.getCanonicalName()); } return stringType; } }
@Override public TypeBuilder<?> handleClass(Class<?> clazz, List<Type> genericTypes, TypeHandlerManager typeHandlerManager, ParsingContext context, BaseTypeBuilder typeBuilder) { final StringTypeBuilder enumType = typeBuilder.stringType(); enumType.id(clazz.getCanonicalName()); final Object[] enumConstants = clazz.getEnumConstants(); final String[] enumOf = new String[enumConstants.length]; for (int i = 0; i < enumConstants.length; i++) { final Enum enumConstant = (Enum) enumConstants[i]; enumOf[i] = enumConstant.name(); } enumType.enumOf(enumOf); return enumType; } }
@Override public TypeBuilder<?> handleClass(Class<?> clazz, List<Type> genericTypes, TypeHandlerManager typeHandlerManager, ParsingContext context, BaseTypeBuilder<?> typeBuilder) { final StringTypeBuilder<?> enumType = typeBuilder.stringType(); enumType.id(clazz.getCanonicalName()); final Object[] enumConstants = clazz.getEnumConstants(); final String[] enumOf = new String[enumConstants.length]; for (int i = 0; i < enumConstants.length; i++) { final Object enumConstant = enumConstants[i]; enumOf[i] = String.valueOf(enumConstant); } enumType.enumOf(enumOf); return enumType; } }
@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); }