@Override public void visitString(StringType stringType) { type = withNewAnnotations(typeBuilder.stringType()); }
@Override public MetadataType getOutputType(MetadataContext context, Object key) { return BaseTypeBuilder.create(JAVA).stringType().build(); }
@Override public MetadataType getAttributesType(MetadataContext context, String key) throws MetadataResolvingException, ConnectionException { ObjectTypeBuilder builder = BaseTypeBuilder.create(JAVA).objectType(); builder.openWith().stringType(); return builder.build(); }
@Override public MetadataType getStaticMetadata() { ObjectTypeBuilder object = BaseTypeBuilder.create(MetadataFormat.JSON).objectType(); object.id("json-object"); object.addField().key("name").value().stringType(); object.addField().key("last-name").value().stringType(); return object.build(); } }
@Override public MetadataType getInputMetadata(MetadataContext context, Object key) { if (key instanceof NullMetadataKey) { return BaseTypeBuilder.create(JAVA).voidType().build(); } return BaseTypeBuilder.create(JAVA).stringType().build(); }
@Override public MetadataType getInputMetadata(MetadataContext context, LocationKey key) throws MetadataResolvingException, ConnectionException { checkLocationKey(key); final ObjectTypeBuilder objectBuilder = BaseTypeBuilder.create(new MetadataFormat(key.toString(), key.toString(), APPLICATION_JAVA_MIME_TYPE)).objectType(); objectBuilder.addField().key("CONTINENT").value().stringType(); objectBuilder.addField().key("COUNTRY").value().stringType(); objectBuilder.addField().key("CITY").value().stringType(); return objectBuilder.build(); }
@Override public void visitString(StringType stringType) { if (property == null || stringType.getAnnotation(EnumAnnotation.class).isPresent()) { return; } if (!property.isStrict()) { declareOutputMimeTypeParameter(declaration.getParameterGroup(DEFAULT_GROUP_NAME)); } replaceOutputType(declaration, property, format -> { StringTypeBuilder stringTypeBuilder = BaseTypeBuilder.create(format).stringType(); enrichWithAnnotations(stringTypeBuilder, declaration.getOutput().getType().getAnnotations()); return stringTypeBuilder.build(); }); }
@Override public void accept(ExtensionDeclarer extensionDeclarer, ExtensionLoadingContext context) { ConfigurationDeclarer configurationDeclarer = extensionDeclarer.named(EXTENSION_NAME) .describedAs("Crafted Config Properties Extension") .onVersion("1.0.0") .withCategory(COMMUNITY) .fromVendor("Mulesoft") .withConfig("secure-configuration-properties"); ParameterGroupDeclarer defaultParameterGroup = configurationDeclarer.onDefaultParameterGroup(); defaultParameterGroup .withRequiredParameter("file").ofType(BaseTypeBuilder.create(JAVA).stringType().build()); ParameterGroupDeclarer parameterGroupDeclarer = configurationDeclarer.onParameterGroup("encrypt").withDslInlineRepresentation(true); parameterGroupDeclarer.withRequiredParameter("algorithm").ofType(BaseTypeBuilder.create(JAVA).stringType().build()); parameterGroupDeclarer.withRequiredParameter("mode").ofType(BaseTypeBuilder.create(JAVA).stringType().build()); } }
@Test public void getDataTypeFromString() { StringTypeBuilder typeBuilder = BaseTypeBuilder .create(JAVA) .stringType(); DataType dataType = toDataType(typeBuilder.build()); assertThat(dataType.getType(), is(equalTo(String.class))); }
@Test public void stringOperation() { mockOutput(operation, builder.stringType().build()); enricher.enrich(extensionLoadingContext); List<ParameterDeclaration> params = getGroupParameters(operation); assertThat(params, hasSize(1)); assertParameter(params.get(0), MIME_TYPE_PARAMETER_NAME); }
@Test public void stringTypeSource() { mockOutput(source, builder.stringType().build()); enricher.enrich(extensionLoadingContext); List<ParameterDeclaration> params = getGroupParameters(source); assertThat(params, hasSize(1)); assertParameter(params.get(0), MIME_TYPE_PARAMETER_NAME); }
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); }
private MetadataType listOfString() { return TYPE_BUILDER.arrayType().of(TYPE_BUILDER.stringType()).with(new ClassInformationAnnotation(List.class)).build(); }
@Parameters(name = "isSimpleType({0})") public static Collection<Object[]> data() { return Arrays.asList(new Object[][] {{BUILDER.stringType().build(), true}, {BUILDER.numberType().build(), true}, {BUILDER.booleanType().build(), true}, {BUILDER.objectType().build(), false}, {BUILDER.arrayType().of(BUILDER.stringType()).build(), false}, {BUILDER.dateTimeType().build(), false}}); }
@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)); }
@Test public void stringOperationWithStrictMimeType() { mockOutput(operation, builder.stringType().build()); mockMediaType(operation, true); enricher.enrich(extensionLoadingContext); assertNoMimeTypeParams(operation); }
@Test public void stringTypeSourceWithStrictMimeType() { mockOutput(source, builder.stringType().build()); mockMediaType(source, true); enricher.enrich(extensionLoadingContext); assertNoMimeTypeParams(source); }
public static MetadataType getMetadata(String key) throws MetadataResolvingException { final ObjectTypeBuilder objectBuilder = BaseTypeBuilder.create(JAVA).objectType(); switch (key) { case MetadataConnection.CAR: objectBuilder.addField().key(TIRES).value().numberType(); objectBuilder.addField().key(BRAND).value().stringType(); break; case MetadataConnection.HOUSE: objectBuilder.addField().key(DIRECTION).value().stringType(); objectBuilder.addField().key(SIZE).value().numberType(); break; case MetadataConnection.PERSON: objectBuilder.addField().key(NAME).value().stringType(); objectBuilder.addField().key(AGE).value().numberType(); break; case MetadataConnection.NULL: return BaseTypeBuilder.create(JAVA).nullType().build(); case MetadataConnection.VOID: return BaseTypeBuilder.create(JAVA).voidType().build(); default: throw new MetadataResolvingException("Unknown key " + key, INVALID_METADATA_KEY); } return objectBuilder.build(); }
/** * Given the Invoke Operation Declarer declares all the parameters that the operation has. * * @param operation the invoke operation declarer. */ private void declareMetadataKeyParameters(OperationDeclarer operation, ClassTypeLoader loader, ReflectionCache reflectionCache) { TypeWrapper keyType = new TypeWrapper(WebServiceTypeKey.class, loader); ParameterGroupDeclarer group = operation .onParameterGroup(KEYS_GROUP) .withModelProperty( new ParameterGroupModelProperty(new ParameterGroupDescriptor(KEYS_GROUP, keyType))); StringType stringType = TYPE_BUILDER.stringType().build(); group.withRequiredParameter(SERVICE_PARAM) .withModelProperty(new DeclaringMemberModelProperty(getField(WebServiceTypeKey.class, SERVICE_PARAM, reflectionCache) .get())) .ofType(stringType) .withModelProperty(new MetadataKeyPartModelProperty(1)) .withLayout(getLayout(1)); group.withRequiredParameter(OPERATION_PARAM) .ofType(stringType) .withModelProperty(new DeclaringMemberModelProperty(getField(WebServiceTypeKey.class, OPERATION_PARAM, reflectionCache) .get())) .withModelProperty(new MetadataKeyPartModelProperty(2)) .withLayout(getLayout(2)); }
@Test public void testModuleAllOperationRemapping_expectsAllRemappedOperation() { final DeclarationOperation declaresOutput = new DeclarationOperation(BaseTypeBuilder.create(MetadataFormat.JSON).binaryType().build(), BaseTypeBuilder.create(MetadataFormat.XML).numberType().build()); final DeclarationOperation declaresAttributes = new DeclarationOperation(BaseTypeBuilder.create(MetadataFormat.XML).dateType().build(), BaseTypeBuilder.create(MetadataFormat.CSV).numberType().build()); final DeclarationOperation declaresOutputAndAttributes = new DeclarationOperation(BaseTypeBuilder.create(MetadataFormat.XML).numberType().build(), VOID_TYPE); final DeclarationOperation declaresNothing = new DeclarationOperation(BaseTypeBuilder.create(MetadataFormat.JSON).stringType().build(), BaseTypeBuilder.create(MetadataFormat.CSV).stringType().build()); assertModule(of("modules/declaration/declaration-all-operations.json"), declaresOutput, declaresAttributes, declaresOutputAndAttributes, declaresNothing); }