/* * Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com * The software in this package is published under the terms of the CPAL v1.0 * license, a copy of which has been included with this distribution in the * LICENSE.txt file. */ package org.mule.test.typed.value.extension.extension; import org.mule.runtime.api.metadata.TypedValue; import org.mule.runtime.extension.api.annotation.metadata.OutputResolver; import org.mule.runtime.extension.api.annotation.param.Config; import org.mule.runtime.extension.api.annotation.param.Content; import org.mule.runtime.extension.api.annotation.param.Optional; import org.mule.runtime.extension.api.annotation.param.ParameterGroup; import org.mule.test.heisenberg.extension.model.DifferedKnockableDoor; import org.mule.test.heisenberg.extension.model.KnockeableDoor; import org.mule.test.vegan.extension.VeganProductInformation; import java.io.InputStream; import java.util.List; import java.util.Map; public class TypedValueParameterOperations { public static final String THIS_IS_A_DEFAULT_STRING = "This is a default string"; public TypedValue<String> typedValueOperationStringParameter(@Optional( defaultValue = THIS_IS_A_DEFAULT_STRING) TypedValue<String> stringValue, @Config TypedValueExtension config) { return stringValue; } public TypedValue<List<String>> typedValueOperationStringListParameter(TypedValue<List<String>> stringValues) { return stringValues; } public TypedValue<Map<String, String>> typedValueOperationStringMapParameter(TypedValue<Map<String, String>> stringMapValues) { return stringMapValues; } public TypedValue<KnockeableDoor> typedValueOperationDoorParameter(TypedValue<KnockeableDoor> doorValue) { return doorValue; } public TypedValue<List<KnockeableDoor>> typedValueOperationDoorListParameter(TypedValue<List<KnockeableDoor>> doorValues) { return doorValues; } public TypedValue<Map<String, KnockeableDoor>> typedValueOperationDoorMapParameter(TypedValue<Map<String, KnockeableDoor>> doorMapValues) { return doorMapValues; } public TypedValue<Map<String, List<String>>> typedValueOperationStringMapListParameter(TypedValue<Map<String, List<String>>> doorMapListValues) { return doorMapListValues; } public DifferedKnockableDoor typedValueForStringInsidePojo(DifferedKnockableDoor differedDoor) { return differedDoor; } public TypedValueExtension typedValueOnConfig(@Config TypedValueExtension extension) { return extension; } public VeganProductInformation typedValueOperationPojoWithNullsafeAndContent(@ParameterGroup(name = "param", showInDsl = true) VeganProductInformation param) { return param; } public TypedValue<String> typedValueOperationWithStringContent(@Content TypedValue<String> stringDescription) { return stringDescription; } @OutputResolver(output = NullOutputResolver.class) public TypedValue<Object> typedValueForObject(@Content TypedValue<Object> objectTypedValue) { return objectTypedValue; } public TypedValue<InputStream> typedValueForInputStream(@Content TypedValue<InputStream> inputStream) { return inputStream; } }