use of org.mule.runtime.extension.api.model.source.ImmutableSourceModel in project mule by mulesoft.
the class NameClashModelValidatorTestCase method sourceWithRepeatedParameterNameAmongCallbackAndSource.
@Test
public void sourceWithRepeatedParameterNameAmongCallbackAndSource() {
exception.expect(IllegalModelDefinitionException.class);
ParameterModel offending = getParameter(SIMPLE_PARAM_NAME, String.class);
SourceCallbackModel sourceCallbackModel = mock(SourceCallbackModel.class);
mockParameters(sourceCallbackModel, simpleConfigParam);
ParameterGroupModel group = mock(ParameterGroupModel.class);
when(group.getName()).thenReturn(DEFAULT_GROUP_NAME);
when(group.getModelProperty(ParameterGroupModelProperty.class)).thenReturn(empty());
when(group.isShowInDsl()).thenReturn(false);
when(group.getParameterModels()).thenReturn(asList(offending));
SourceModel sourceModel = new ImmutableSourceModel(SOURCE_NAME, "", false, false, asList(group), emptyList(), null, null, of(sourceCallbackModel), empty(), empty(), false, false, false, null, SOURCE, emptySet(), emptySet(), emptySet());
when(extensionModel.getSourceModels()).thenReturn(asList(sourceModel));
validate();
}
use of org.mule.runtime.extension.api.model.source.ImmutableSourceModel in project mule by mulesoft.
the class MetadataMediator method getTypedModel.
/**
* Returns a {@link ComponentModel} with its types resolved.
*
* @param inputMetadataDescriptor {@link InputMetadataDescriptor} describes the input parameters of the component
* @param outputMetadataDescriptor {@link OutputMetadataDescriptor} describes the component output
* @return model with its types resolved by the metadata resolution process
*/
private T getTypedModel(InputMetadataDescriptor inputMetadataDescriptor, OutputMetadataDescriptor outputMetadataDescriptor) {
Reference<T> typedModel = new Reference<>();
component.accept(new ComponentModelVisitor() {
@Override
public void visit(ConstructModel constructModel) {
typedModel.set((T) new ImmutableConstructModel(constructModel.getName(), constructModel.getDescription(), resolveParameterGroupModelType(constructModel.getParameterGroupModels(), inputMetadataDescriptor.getAllParameters()), constructModel.getNestedComponents(), constructModel.allowsTopLevelDeclaration(), constructModel.getDisplayModel().orElse(null), constructModel.getErrorModels(), constructModel.getStereotype(), constructModel.getModelProperties()));
}
@Override
public void visit(OperationModel operationModel) {
OutputModel typedOutputModel = resolveOutputModelType(operationModel.getOutput(), outputMetadataDescriptor.getPayloadMetadata());
OutputModel typedAttributesModel = resolveOutputModelType(operationModel.getOutputAttributes(), outputMetadataDescriptor.getAttributesMetadata());
typedModel.set((T) new ImmutableOperationModel(operationModel.getName(), operationModel.getDescription(), resolveParameterGroupModelType(operationModel.getParameterGroupModels(), inputMetadataDescriptor.getAllParameters()), operationModel.getNestedComponents(), typedOutputModel, typedAttributesModel, operationModel.isBlocking(), operationModel.getExecutionType(), operationModel.requiresConnection(), operationModel.isTransactional(), operationModel.supportsStreaming(), operationModel.getDisplayModel().orElse(null), operationModel.getErrorModels(), operationModel.getStereotype(), operationModel.getModelProperties(), operationModel.getNotificationModels()));
}
@Override
public void visit(SourceModel sourceModel) {
OutputModel typedOutputModel = resolveOutputModelType(sourceModel.getOutput(), outputMetadataDescriptor.getPayloadMetadata());
OutputModel typedAttributesModel = resolveOutputModelType(sourceModel.getOutputAttributes(), outputMetadataDescriptor.getAttributesMetadata());
typedModel.set((T) new ImmutableSourceModel(sourceModel.getName(), sourceModel.getDescription(), sourceModel.hasResponse(), true, resolveParameterGroupModelType(sourceModel.getParameterGroupModels(), inputMetadataDescriptor.getAllParameters()), sourceModel.getNestedComponents(), typedOutputModel, typedAttributesModel, resolveSourceCallbackType(sourceModel.getSuccessCallback(), inputMetadataDescriptor.getAllParameters()), resolveSourceCallbackType(sourceModel.getErrorCallback(), inputMetadataDescriptor.getAllParameters()), resolveSourceCallbackType(sourceModel.getTerminateCallback(), inputMetadataDescriptor.getAllParameters()), sourceModel.requiresConnection(), sourceModel.isTransactional(), sourceModel.supportsStreaming(), sourceModel.getDisplayModel().orElse(null), sourceModel.getStereotype(), sourceModel.getErrorModels(), sourceModel.getModelProperties(), sourceModel.getNotificationModels()));
}
});
return typedModel.get();
}
Aggregations