Search in sources :

Example 6 with OutputModel

use of org.mule.runtime.api.meta.model.OutputModel in project mule by mulesoft.

the class ExportedPackagesValidatorTestCase method setUpValidExtension.

private void setUpValidExtension() {
    OutputModel appleList = mockOutputModel(ApiTestClass.class);
    OperationModel firstOperation = mockOperationModel(appleList, mockOutputModel(ApiTestClass.class));
    withMethod(firstOperation, getApiMethods(ApiTestClass.class).stream().filter(m -> m.getName().equals("someOperation")).findFirst());
    when(extensionModel.getOperationModels()).thenReturn(asList(firstOperation));
    visitableMock(firstOperation);
}
Also used : ApiTestClass(org.mule.test.module.extension.api.ApiTestClass) OutputModel(org.mule.runtime.api.meta.model.OutputModel) OperationModel(org.mule.runtime.api.meta.model.operation.OperationModel)

Example 7 with OutputModel

use of org.mule.runtime.api.meta.model.OutputModel 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();
}
Also used : SourceModel(org.mule.runtime.api.meta.model.source.SourceModel) ImmutableSourceModel(org.mule.runtime.extension.api.model.source.ImmutableSourceModel) ConstructModel(org.mule.runtime.api.meta.model.construct.ConstructModel) ImmutableConstructModel(org.mule.runtime.extension.api.model.construct.ImmutableConstructModel) ImmutableOperationModel(org.mule.runtime.extension.api.model.operation.ImmutableOperationModel) ImmutableSourceModel(org.mule.runtime.extension.api.model.source.ImmutableSourceModel) Reference(org.mule.runtime.api.util.Reference) ComponentModelVisitor(org.mule.runtime.api.meta.model.ComponentModelVisitor) ImmutableConstructModel(org.mule.runtime.extension.api.model.construct.ImmutableConstructModel) ImmutableOutputModel(org.mule.runtime.extension.api.model.ImmutableOutputModel) OutputModel(org.mule.runtime.api.meta.model.OutputModel) OperationModel(org.mule.runtime.api.meta.model.operation.OperationModel) ImmutableOperationModel(org.mule.runtime.extension.api.model.operation.ImmutableOperationModel)

Example 8 with OutputModel

use of org.mule.runtime.api.meta.model.OutputModel in project mule by mulesoft.

the class ExtensionWithCustomStaticTypesTestCase method customTypeOutput.

@Test
public void customTypeOutput() throws Exception {
    OperationModel o = getOperation("customTypeOutput");
    OutputModel output = o.getOutput();
    MetadataType type = output.getType();
    assertThat(output.hasDynamicType(), is(false));
    assertThat(type.getMetadataFormat(), is(CSV));
    assertThat(type.toString(), is("csv-object"));
}
Also used : MetadataType(org.mule.metadata.api.model.MetadataType) OutputModel(org.mule.runtime.api.meta.model.OutputModel) OperationModel(org.mule.runtime.api.meta.model.operation.OperationModel) Test(org.junit.Test)

Aggregations

OutputModel (org.mule.runtime.api.meta.model.OutputModel)8 OperationModel (org.mule.runtime.api.meta.model.operation.OperationModel)5 TypeToken (com.google.common.reflect.TypeToken)2 Arrays.asList (java.util.Arrays.asList)2 List (java.util.List)2 MetadataType (org.mule.metadata.api.model.MetadataType)2 ParameterModel (org.mule.runtime.api.meta.model.parameter.ParameterModel)2 Result (org.mule.runtime.extension.api.runtime.operation.Result)2 Before (org.junit.Before)1 Test (org.junit.Test)1 MessageMetadataType (org.mule.metadata.message.api.MessageMetadataType)1 ComponentModelVisitor (org.mule.runtime.api.meta.model.ComponentModelVisitor)1 HasOutputModel (org.mule.runtime.api.meta.model.HasOutputModel)1 ConstructModel (org.mule.runtime.api.meta.model.construct.ConstructModel)1 SourceModel (org.mule.runtime.api.meta.model.source.SourceModel)1 MetadataResolvingException (org.mule.runtime.api.metadata.MetadataResolvingException)1 MetadataFailure (org.mule.runtime.api.metadata.resolving.MetadataFailure)1 Reference (org.mule.runtime.api.util.Reference)1 ImmutableOutputModel (org.mule.runtime.extension.api.model.ImmutableOutputModel)1 ImmutableConstructModel (org.mule.runtime.extension.api.model.construct.ImmutableConstructModel)1