use of org.mule.runtime.api.meta.model.declaration.fluent.ParameterizedDeclaration in project mule by mulesoft.
the class ParameterDescriptionDocumenter method document.
void document(ParameterizedDeclaration<?> parameterized, final TypeElement element) {
TypeElement traversingElement = element;
while (traversingElement != null && !Object.class.getName().equals(traversingElement.getQualifiedName().toString())) {
final Map<String, VariableElement> variableElements = processor.getFieldsAnnotatedWith(traversingElement, Parameter.class).entrySet().stream().collect(Collectors.toMap(entry -> getNameOrAlias(entry.getValue()), Map.Entry::getValue));
parameterized.getAllParameters().stream().filter(param -> variableElements.containsKey(param.getName())).forEach(param -> {
String summary = processor.getJavaDocSummary(processingEnv, variableElements.get(param.getName()));
param.setDescription(summary);
});
traversingElement = (TypeElement) processingEnv.getTypeUtils().asElement(traversingElement.getSuperclass());
}
for (VariableElement variableElement : processor.getFieldsAnnotatedWith(element, ParameterGroup.class).values()) {
TypeElement typeElement = (TypeElement) processingEnv.getTypeUtils().asElement(variableElement.asType());
document(parameterized, typeElement);
}
}
use of org.mule.runtime.api.meta.model.declaration.fluent.ParameterizedDeclaration in project mule by mulesoft.
the class ParameterDescriptionDocumenter method document.
/**
* Describes parameters that are defined as Method parameters.
*/
void document(ParameterizedDeclaration<?> parameterized, Element method, MethodDocumentation documentation) {
parameterized.getAllParameters().forEach(p -> {
String description = documentation.getParameters().get(p.getName());
if (description != null) {
p.setDescription(description);
}
});
if (method instanceof ExecutableElement) {
((ExecutableElement) method).getParameters().stream().filter(e -> e.getAnnotation(ParameterGroup.class) != null).forEach(group -> {
TypeElement typeElement = (TypeElement) processingEnv.getTypeUtils().asElement(group.asType());
document(parameterized, typeElement);
});
}
}
use of org.mule.runtime.api.meta.model.declaration.fluent.ParameterizedDeclaration in project mule by mulesoft.
the class BooleanParameterDeclarationEnricher method enrich.
@Override
public void enrich(ExtensionLoadingContext extensionLoadingContext) {
ExtensionDeclaration extensionDeclaration = extensionLoadingContext.getExtensionDeclarer().getDeclaration();
new DeclarationWalker() {
@Override
protected void onParameter(ParameterizedDeclaration owner, ParameterGroupDeclaration parameterGroup, ParameterDeclaration declaration) {
declaration.getType().accept(new MetadataTypeVisitor() {
@Override
public void visitBoolean(BooleanType booleanType) {
declaration.setRequired(false);
if (declaration.getDefaultValue() == null && !declaration.isConfigOverride()) {
declaration.setDefaultValue(valueOf(FALSE));
}
}
});
}
}.walk(extensionDeclaration);
}
use of org.mule.runtime.api.meta.model.declaration.fluent.ParameterizedDeclaration in project mule by mulesoft.
the class ExtensionDescriptionsEnricher method document.
/**
* Fills all the descriptions in the provided {@link ExtensionDeclaration} based on the
* <strong>extensions-descriptions.xml</strong> file.
*
* @param declaration the declaration to describe.
* @param documentation the extension documentation with its corresponding description.
*/
private void document(ExtensionDeclaration declaration, XmlExtensionDocumentation documentation) {
declaration.setDescription(documentation.getExtension().getDescription());
new DeclarationWalker() {
@Override
protected void onConfiguration(ConfigurationDeclaration declaration) {
document(declaration, documentation.getConfigs());
}
@Override
protected void onOperation(WithOperationsDeclaration owner, OperationDeclaration declaration) {
document(declaration, documentation.getOperations());
}
@Override
protected void onConnectionProvider(ConnectedDeclaration owner, ConnectionProviderDeclaration declaration) {
document(declaration, documentation.getConnections());
}
@Override
protected void onSource(WithSourcesDeclaration owner, SourceDeclaration declaration) {
document(declaration, documentation.getSources());
}
private void document(ParameterizedDeclaration<?> declaration, List<XmlExtensionElementDocumentation> elements) {
elements.stream().filter(e -> e.getName().equals(declaration.getName())).findAny().ifPresent(e -> {
declaration.setDescription(e.getDescription());
declaration.getAllParameters().forEach(param -> e.getParameters().stream().filter(p -> p.getName().equals(param.getName())).findAny().ifPresent(p -> param.setDescription(p.getDescription())));
});
}
}.walk(declaration);
}
Aggregations