private MetadataType getMetadataTypeFromObjectType(ObjectType objectMetadataType, String configParamName, String modelParamName) { MetadataType childMetadataType; Optional<ObjectFieldType> fieldByName = objectMetadataType.getFieldByName(configParamName); if (fieldByName.isPresent()) { ObjectFieldType objectFieldType = fieldByName.get(); if (objectFieldType.getValue() instanceof ObjectType) { childMetadataType = objectFieldType; } else if (objectFieldType.getValue() instanceof org.mule.metadata.api.model.SimpleType) { childMetadataType = objectFieldType.getValue(); } else if (objectFieldType.getValue() instanceof UnionType) { childMetadataType = getChildMetadataTypeFromUnion((UnionType) objectFieldType.getValue(), modelParamName); } else { throw new IllegalStateException("Unsupported attribute type: " + objectFieldType.getValue().getClass().getName()); } } else { childMetadataType = getMetadataTypeFromFlattenedFields(objectMetadataType, modelParamName); } return childMetadataType; }
private void createObjectValueFromType(ObjectType objectType, ParameterObjectValue.Builder objectValue, ConfigLine config, DslElementSyntax paramDsl) { getId(objectType).ifPresent(objectValue::ofType); objectType.getFieldByName(CONFIG_ATTRIBUTE_NAME) .map(f -> config.getConfigAttributes().get(CONFIG_ATTRIBUTE_NAME)) .ifPresent(configRef -> objectValue.withParameter(CONFIG_ATTRIBUTE_NAME, ParameterSimpleValue.of(configRef.getValue(), STRING))); copyExplicitAttributes(config.getConfigAttributes(), objectValue, objectType); config.getChildren().forEach(fieldConfig -> objectType.getFields().stream() .filter(fieldType -> paramDsl.getContainedElement(getLocalPart(fieldType)) .map(fieldDsl -> fieldDsl.getElementName().equals(fieldConfig.getIdentifier())).orElse(false)) .findFirst() .ifPresent(fieldType -> fieldType.getValue().accept( getParameterDeclarerVisitor(fieldConfig, paramDsl .getContainedElement(getLocalPart(fieldType)) .get(), fieldValue -> objectValue .withParameter(getLocalPart(fieldType), fieldValue))))); }
final ObjectType firstInputParameterObjectType = (ObjectType) firstParameterValueModel.getType(); assertThat(firstInputParameterObjectType.getFields().size(), is(1)); assertThat(firstInputParameterObjectType.getFieldByName("User").isPresent(), is(true)); final ObjectType secondInputParameterObjectType = (ObjectType) secondParameterValueModel.getType(); assertThat(secondInputParameterObjectType.getFields().size(), is(1)); assertThat(secondInputParameterObjectType.getFieldByName("Root").isPresent(), is(true)); final ObjectType outputObjectType = (ObjectType) operation.getOutput().getType(); assertThat(outputObjectType.getFields().size(), is(1)); assertThat(outputObjectType.getFieldByName("Root0").isPresent(), is(true));
for (Field field : getFields(clazz)) { ValueResolver<?> fieldResolver = null; ObjectFieldType objectField = objectType.getFieldByName(getAlias(field)).orElse(null); if (objectField == null) { continue;
@Override public Optional<MetadataType> getVariableType(String varName) { return getVariables().getFieldByName(varName).map(ObjectFieldType::getValue); }
public static MessageMetadataTypeBuilder fromObjectType(ObjectType messageType) { MessageMetadataTypeBuilder builder = new MessageMetadataTypeBuilder(); messageType.getFieldByName(DefaultMessageMetadataType.PAYLOAD_FIELD_NAME) .ifPresent(objectFieldType -> { builder.payload(objectFieldType.getValue()); objectFieldType.getAnnotations().forEach(builder::withPayloadAnnotation); }); messageType.getFieldByName(DefaultMessageMetadataType.ATTRIBUTES_FIELD_NAME) .ifPresent(objectFieldType -> { builder.attributes(objectFieldType.getValue()); objectFieldType.getAnnotations().forEach(builder::withAttributesAnnotation); }); return builder; }
protected void assertFieldOfType(ObjectType record, String name, MetadataType type) { Optional<ObjectFieldType> field = record.getFieldByName(name); assertThat(field.isPresent(), is(true)); assertThat(field.get().getValue(), equalTo(type)); }
private void createObjectValueFromType(ObjectType objectType, ParameterObjectValue.Builder objectValue, ConfigLine config, DslElementSyntax paramDsl) { getId(objectType).ifPresent(objectValue::ofType); objectType.getFieldByName(CONFIG_ATTRIBUTE_NAME) .map(f -> config.getConfigAttributes().get(CONFIG_ATTRIBUTE_NAME)) .ifPresent(configRef -> objectValue.withParameter(CONFIG_ATTRIBUTE_NAME, configRef.getValue())); copyExplicitAttributes(config.getConfigAttributes(), objectValue); config.getChildren().forEach(fieldConfig -> objectType.getFields().stream() .filter(fieldType -> paramDsl.getContainedElement(getLocalPart(fieldType)) .map(fieldDsl -> fieldDsl.getElementName().equals(fieldConfig.getIdentifier())).orElse(false)) .findFirst() .ifPresent(fieldType -> fieldType.getValue().accept( getParameterDeclarerVisitor(fieldConfig, paramDsl .getContainedElement(getLocalPart(fieldType)) .get(), fieldValue -> objectValue .withParameter(getLocalPart(fieldType), fieldValue))))); }
@Test public void returnsSelectInputMetadataFromBeanParameterizedQuery() throws Exception { MetadataResult<ComponentMetadataDescriptor<OperationModel>> metadata = getMetadata("selectMetadata", "select * from PLANET where id = :id and name = :name"); assertThat(metadata.isSuccess(), is(true)); ObjectType type = (ObjectType) metadata.get().getModel().getAllParameterModels().stream() .filter(p -> p.getName().equals("inputParameters")) .findFirst().get().getType(); assertThat(type.getFields().size(), equalTo(2)); Optional<ObjectFieldType> id = type.getFieldByName("id"); assertThat(id.isPresent(), is(true)); assertThat(id.get().getValue(), equalTo(testDatabase.getIdFieldMetaDataType())); Optional<ObjectFieldType> name = type.getFieldByName("name"); assertThat(name.isPresent(), is(true)); assertThat(name.get().getValue(), equalTo(testDatabase.getNameFieldMetaDataType())); } }
for (Field field : getFields(clazz)) { ValueResolver<?> fieldResolver = null; ObjectFieldType objectField = objectType.getFieldByName(getAlias(field)).orElse(null); if (objectField == null) { continue;