@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);
private void walkDeclaration(Optional<GlobalElementComponentModelModelProperty> globalElementModelProperty, List<ParameterDeclaration> allParameters) { globalElementModelProperty.ifPresent(modelProperty -> allParameters.stream() .filter(parameterDeclaration -> parameterDeclaration.getType() instanceof StringType) .forEach(parameterDeclaration -> traverseProperty(globalElementModelProperty.get().getGlobalElements(), parameterDeclaration))); }
@Override protected void onParameter(ParameterGroupDeclaration parameterGroup, ParameterDeclaration parameter) { if (isObjectStore(parameter.getType())) { List<StereotypeModel> stereotypes = parameter.getAllowedStereotypeModels(); if (!stereotypes.contains(OBJECT_STORE)) { stereotypes.add(OBJECT_STORE); } hasObjectStoreParams.set(true); } } }.walk(extension);
@Override protected void onOperation(OperationDeclaration declaration) { declaration.getModelProperty(OperationComponentModelModelProperty.class) .ifPresent(modelProperty -> { ComponentModel bodyComponentModel = modelProperty.getBodyComponentModel(); declaration.getAllParameters().stream() .filter(parameterDeclaration -> parameterDeclaration.getType() instanceof StringType) .forEach(parameterDeclaration -> traverseProperty(bodyComponentModel.getInnerComponents(), parameterDeclaration)); }); } }.walk(extensionDeclaration);
private Optional<MetadataKeyIdModelProperty> findMetadataKeyIdInParameters( ComponentDeclaration<? extends ComponentDeclaration> component, String categoryName) { return component.getParameterGroups().stream() .flatMap(g -> g.getParameters().stream()) .filter(p -> getExtensionParameter(p).map(element -> element.isAnnotatedWith(MetadataKeyId.class)).orElse(false)) .map(p -> new MetadataKeyIdModelProperty(p.getType(), p.getName(), categoryName)) .findFirst(); }
private void assertParameterType(ParameterDeclaration param, MetadataType type) { assertThat(param.getType(), equalTo(type)); }
private Optional<Pair<MetadataKeyId, MetadataType>> locateMetadataKeyId( ComponentDeclaration<? extends ComponentDeclaration> component) { Optional<Pair<MetadataKeyId, MetadataType>> keyId = component.getAllParameters().stream() .map((declaration) -> new ImmutablePair<>(declaration, getAnnotatedElement(declaration))) .filter(p -> p.getRight().isPresent() && p.getRight().get().isAnnotationPresent(MetadataKeyId.class)) .map(p -> (Pair<MetadataKeyId, MetadataType>) new ImmutablePair<>(p.getRight().get().getAnnotation(MetadataKeyId.class), p.getLeft().getType())) .findFirst(); if (!keyId.isPresent()) { for (ParameterGroupDeclaration group : component.getParameterGroups()) { keyId = group.getModelProperty(ParameterGroupModelProperty.class) .map(ParameterGroupModelProperty::getDescriptor) .filter(g -> g.getAnnotatedContainer().isAnnotatedWith(MetadataKeyId.class)) .map(g -> new ImmutablePair<>(g.getContainer().getAnnotation(MetadataKeyId.class), g.getType().asMetadataType())); if (keyId.isPresent()) { break; } } } return keyId; }
@Test public void verifyTargetParameterOnOperation() { OperationDeclaration operationDeclaration = getNamedObject(declaration.getOperations(), "transform"); ParameterDeclaration parameterDeclaration = getNamedObject(operationDeclaration.getAllParameters(), "target"); assertThat(parameterDeclaration.getName(), is("target")); assertThat(parameterDeclaration.getExpressionSupport(), is(NOT_SUPPORTED)); assertThat(parameterDeclaration.getType(), instanceOf(StringType.class)); assertThat(parameterDeclaration.isRequired(), is(false)); }
@Test public void verifyTargetValueParameterOnOperation() { OperationDeclaration operationDeclaration = getNamedObject(declaration.getOperations(), "transform"); ParameterDeclaration parameterDeclaration = getNamedObject(operationDeclaration.getAllParameters(), "targetValue"); assertThat(parameterDeclaration.getName(), is("targetValue")); assertThat(parameterDeclaration.getExpressionSupport(), is(REQUIRED)); assertThat(parameterDeclaration.getType(), instanceOf(StringType.class)); assertThat(parameterDeclaration.isRequired(), is(false)); }
private void assertParameterType(MetadataType metadataType, ParameterDeclaration param) { ClassInformationAnnotation typeInfo = metadataType.getAnnotation(ClassInformationAnnotation.class).orElse(null); if (typeInfo != null) { ClassInformationAnnotation paramTypeInfo = param.getType().getAnnotation(ClassInformationAnnotation.class).orElse(null); assertThat(typeInfo.getClassname(), equalTo(paramTypeInfo.getClassname())); } else { assertThat(getId(metadataType), equalTo(getId(param.getType()))); } }
private void assertParameter(ParameterDeclaration parameter, String name) { assertThat(parameter, is(notNullValue())); assertThat(parameter.getName(), is(name)); assertThat(parameter.getType(), equalTo(toMetadataType(String.class))); assertThat(parameter.isRequired(), is(false)); assertThat(parameter.getExpressionSupport(), is(SUPPORTED)); assertThat(parameter.getDefaultValue(), is(nullValue())); }
boolean isContent = !declaration.getRole().equals(ParameterRole.BEHAVIOUR); ParameterDslConfiguration dslConfiguration = declaration.getDslConfiguration(); declaration.getType().accept(new MetadataTypeVisitor() {
@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);
@Override protected void onParameter(ParameterGroupDeclaration parameterGroup, ParameterDeclaration parameter) { if (isObjectStore(parameter.getType())) { List<StereotypeModel> stereotypes = parameter.getAllowedStereotypeModels(); if (!stereotypes.contains(OBJECT_STORE)) { stereotypes.add(OBJECT_STORE); } hasObjectStoreParams.set(true); } } }.walk(extension);
private Optional<MetadataKeyIdModelProperty> findMetadataKeyIdInParameters( ComponentDeclaration<? extends ComponentDeclaration> component, String categoryName) { return component.getParameterGroups().stream() .flatMap(g -> g.getParameters().stream()) .filter(p -> getExtensionParameter(p).map(element -> element.isAnnotatedWith(MetadataKeyId.class)).orElse(false)) .map(p -> new MetadataKeyIdModelProperty(p.getType(), p.getName(), categoryName)) .findFirst(); }
private Optional<Pair<MetadataKeyId, MetadataType>> locateMetadataKeyId( ComponentDeclaration<? extends ComponentDeclaration> component) { Optional<Pair<MetadataKeyId, MetadataType>> keyId = component.getAllParameters().stream() .map((declaration) -> new ImmutablePair<>(declaration, getAnnotatedElement(declaration))) .filter(p -> p.getRight().isPresent() && p.getRight().get().isAnnotationPresent(MetadataKeyId.class)) .map(p -> (Pair<MetadataKeyId, MetadataType>) new ImmutablePair<>(p.getRight().get().getAnnotation(MetadataKeyId.class), p.getLeft().getType())) .findFirst(); if (!keyId.isPresent()) { for (ParameterGroupDeclaration group : component.getParameterGroups()) { keyId = group.getModelProperty(ParameterGroupModelProperty.class) .map(ParameterGroupModelProperty::getDescriptor) .filter(g -> g.getAnnotatedContainer().isAnnotatedWith(MetadataKeyId.class)) .map(g -> new ImmutablePair<>(g.getContainer().getAnnotation(MetadataKeyId.class), g.getType().asMetadataType())); if (keyId.isPresent()) { break; } } } return keyId; }