@Override protected void onSource(WithSourcesDeclaration owner, SourceDeclaration declaration) { final StereotypeModel defaultStereotype = createStereotype(declaration.getName(), sourceParent); declaration.withStereotype(defaultStereotype); addConfigRefStereoTypesIfNeeded(declaration); } };
@Override protected void onConstruct(WithConstructsDeclaration owner, ConstructDeclaration declaration) { final StereotypeModel defaultStereotype = createStereotype(declaration.getName(), processorParent); declaration.withStereotype(defaultStereotype); addConfigRefStereoTypesIfNeeded(declaration); }
@Override public void onOperation(WithOperationsDeclaration owner, OperationDeclaration declaration) { final StereotypeModel defaultStereotype = createStereotype(declaration.getName(), processorParent); declaration.withStereotype(defaultStereotype); addConfigRefStereoTypesIfNeeded(declaration); }
@Override public void accept(ExtensionDeclarer extensionDeclarer, ExtensionLoadingContext context) { extensionDeclarer.named(EXTENSION_NAME) .describedAs("Crafted Extension") .onVersion("1.0.0") .withCategory(COMMUNITY) .fromVendor("Mulesoft"); } }
private void declareOutput(OperationDeclarer operation, ClassTypeLoader loader) { operation.withOutput().ofDynamicType(loader.load(SoapOutputPayload.class)); operation.withOutputAttributes().ofType(loader.load(SoapAttributes.class)); }
@Test public void parseExampleAnnotationOnConfigParameter() { ExtensionDeclaration extensionDeclaration = heisenbergDeclarer.getDeclaration(); List<ParameterDeclaration> parameters = extensionDeclaration.getConfigurations().get(0).getAllParameters(); assertParameterExample(findParameter(parameters, "labAddress"), LAB_ADDRESS_EXAMPLE); }
@Override public void enrich(ExtensionLoadingContext extensionLoadingContext) { extensionLoadingContext.getExtensionDeclarer().getDeclaration().setName(NEW_NAME); } }
@Override protected void onConnectionProvider(ConnectedDeclaration owner, ConnectionProviderDeclaration declaration) { final StereotypeModel defaultStereotype = createStereotype(declaration.getName(), CONNECTION); declaration.withStereotype(defaultStereotype); }
@Override protected void onConfiguration(ConfigurationDeclaration config) { final StereotypeModel defaultStereotype = createStereotype(config.getName(), CONFIG); config.withStereotype(defaultStereotype); componentConfigs = populateComponentConfigsMap(config); }
@Override protected void onConnectionProvider(ConnectedDeclaration owner, ConnectionProviderDeclaration declaration) { if (owner instanceof ConfigurationDeclaration) { walkDeclaration(modelProperty, declaration.getAllParameters()); } }
private void declareParametersCustomStaticTypes(WithParametersDeclaration operation) { for (ParameterDeclaration param : operation.getAllParameters()) { param.getModelProperty(ImplementingParameterModelProperty.class) .map(ImplementingParameterModelProperty::getParameter) .ifPresent(annotated -> getInputType(annotated).ifPresent(type -> declareCustomType(param, type))); } } }.walk(extensionLoadingContext.getExtensionDeclarer().getDeclaration());
private List<ParameterDeclaration> getGroupParameters(ComponentDeclaration declaration) { return declaration.getParameterGroup(DEFAULT_GROUP_NAME).getParameters(); } }
private OutputDeclaration toDeclaration(MetadataType type) { OutputDeclaration declaration = new OutputDeclaration(); declaration.setType(type, false); return declaration; } }
/** * @return The component name: the Configuration name, Operation name, etc. */ public String getName() { return declaration.getName(); }
/** * Returns the annotated {@link Class} that was used to construct the {@code declaration}. * <p/> * The annotated type is determined by querying the {@code declaration} for the {@link ImplementingTypeModelProperty} model * property * * @param declaration a {@link BaseDeclaration} to be enriched * @return a {@link Class} or {@code null} if the model doesn't have a {@link ImplementingTypeModelProperty} */ protected Optional<ImplementingTypeModelProperty> extractImplementingTypeProperty( BaseDeclaration<? extends BaseDeclaration> declaration) { return declaration.getModelProperty(ImplementingTypeModelProperty.class); }
@Override protected void onConfiguration(ConfigurationDeclaration declaration) { walkDeclaration(modelProperty, declaration.getAllParameters()); }
protected void addFallbackStereotype() { declaration.withStereotype(fallbackStereotype); }
@Override public void accept(ExtensionDeclarer extensionDeclarer, ExtensionLoadingContext context) { extensionDeclarer.named(EXTENSION_NAME) .describedAs("Crafted Extension") .onVersion("1.0.0") .withCategory(COMMUNITY) .fromVendor("Mulesoft"); } }
@Test public void parseDisplayAnnotationsOnParameter() { ExtensionDeclaration extensionDeclaration = heisenbergDeclarer.getDeclaration(); List<ParameterDeclaration> parameters = extensionDeclaration.getConfigurations().get(0).getAllParameters(); assertParameterDisplayName(findParameter(parameters, PARAMETER_ORIGINAL_OVERRIDED_DISPLAY_NAME), PARAMETER_OVERRIDED_DISPLAY_NAME); }