use of org.mule.runtime.extension.api.annotation.metadata.MetadataScope in project mule by mulesoft.
the class CustomStaticTypeDeclarationEnricher method getAttributesType.
private Optional<MetadataType> getAttributesType(AnnotatedElement element) {
AttributesXmlType xml = element.getAnnotation(AttributesXmlType.class);
if (xml != null) {
return getXmlType(xml.schema(), xml.qname());
}
AttributesJsonType json = element.getAnnotation(AttributesJsonType.class);
if (json != null) {
return getJsonType(json.schema());
}
OutputResolver resolver = element.getAnnotation(OutputResolver.class);
if (resolver != null && isStaticResolver(resolver.attributes())) {
return getCustomStaticType(resolver.attributes());
}
MetadataScope scope = element.getAnnotation(MetadataScope.class);
if (scope != null && isStaticResolver(scope.attributesResolver())) {
return getCustomStaticType(scope.attributesResolver());
}
return empty();
}
use of org.mule.runtime.extension.api.annotation.metadata.MetadataScope in project mule by mulesoft.
the class CustomStaticTypeDeclarationEnricher method getOutputType.
private Optional<MetadataType> getOutputType(AnnotatedElement element) {
OutputXmlType xml = element.getAnnotation(OutputXmlType.class);
if (xml != null) {
return getXmlType(xml.schema(), xml.qname());
}
OutputJsonType json = element.getAnnotation(OutputJsonType.class);
if (json != null) {
return getJsonType(json.schema());
}
OutputResolver resolver = element.getAnnotation(OutputResolver.class);
if (resolver != null && isStaticResolver(resolver.output())) {
return getCustomStaticType(resolver.output());
}
MetadataScope scope = element.getAnnotation(MetadataScope.class);
if (scope != null && isStaticResolver(scope.outputResolver())) {
return getCustomStaticType(scope.outputResolver());
}
return empty();
}
use of org.mule.runtime.extension.api.annotation.metadata.MetadataScope in project mule by mulesoft.
the class MetadataScopeAdapter method initializeFromClass.
private void initializeFromClass(Type extensionType, WithDeclaringClass annotatedType, WithOutputDeclaration declaration) {
// TODO MULE-10891: Add support for Source Callback parameters
Optional<Class<?>> extensionClass = extensionType.getDeclaringClass();
Optional<Class<?>> componentClass = annotatedType.getDeclaringClass();
if (componentClass.isPresent() && extensionClass.isPresent()) {
MetadataScope scope = getAnnotation(componentClass.get(), MetadataScope.class);
scope = scope != null ? scope : getAnnotation(extensionClass.get(), MetadataScope.class);
if (scope != null && !hasCustomStaticType(declaration.getOutput())) {
this.keysResolver = ResolverSupplier.of(scope.keysResolver());
this.outputResolver = ResolverSupplier.of(scope.outputResolver());
this.attributesResolver = ResolverSupplier.of(scope.attributesResolver());
}
}
}
Aggregations