/* * 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.metadata.extension.resolver; import static java.util.Collections.emptySet; import static org.mule.metadata.api.model.MetadataFormat.JAVA; import org.mule.metadata.api.builder.BaseTypeBuilder; import org.mule.metadata.api.model.MetadataType; import org.mule.runtime.api.connection.ConnectionException; import org.mule.runtime.api.metadata.MetadataContext; import org.mule.runtime.api.metadata.MetadataKey; import org.mule.runtime.api.metadata.MetadataKeyBuilder; import org.mule.runtime.api.metadata.MetadataResolvingException; import org.mule.runtime.api.metadata.resolving.AttributesTypeResolver; import org.mule.runtime.api.metadata.resolving.InputTypeResolver; import org.mule.runtime.api.metadata.resolving.OutputTypeResolver; import org.mule.runtime.api.metadata.resolving.QueryEntityResolver; import org.mule.runtime.api.metadata.resolving.TypeKeysResolver; import org.mule.runtime.extension.api.metadata.NullMetadataKey; import java.util.Arrays; import java.util.Set; import java.util.stream.Collectors; public class TestNoConfigMetadataResolver implements TypeKeysResolver, InputTypeResolver<Object>, OutputTypeResolver<Object>, AttributesTypeResolver<Object>, QueryEntityResolver { @Override public String getCategoryName() { return "MetadataExtensionResolver"; } @Override public String getResolverName() { return "TestNoConfigMetadataResolver"; } @Override public Set<MetadataKey> getEntityKeys(MetadataContext context) throws MetadataResolvingException, ConnectionException { return emptySet(); } @Override public MetadataType getEntityMetadata(MetadataContext context, String key) throws MetadataResolvingException, ConnectionException { return BaseTypeBuilder.create(JAVA).voidType().build(); } @Override public Set<MetadataKey> getKeys(MetadataContext context) { return Arrays.stream(KeyIds.values()).map(e -> MetadataKeyBuilder.newKey(e.name()).build()).collect(Collectors.toSet()); } @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 getOutputType(MetadataContext context, Object key) { if (key instanceof NullMetadataKey) { return BaseTypeBuilder.create(JAVA).voidType().build(); } return BaseTypeBuilder.create(JAVA).booleanType().build(); } @Override public MetadataType getAttributesType(MetadataContext context, Object key) throws MetadataResolvingException, ConnectionException { if (key instanceof NullMetadataKey) { return BaseTypeBuilder.create(JAVA).voidType().build(); } return BaseTypeBuilder.create(JAVA).booleanType().build(); } public enum KeyIds { BOOLEAN, STRING } }