private List<InputTypeResolver<Object>> getAllInputResolvers(ComponentModel componentModel, MetadataResolverFactory resolverFactory) { return componentModel.getAllParameterModels().stream().map(NamedObject::getName) .map(resolverFactory::getInputResolver).collect(toList()); }
private Optional<ParameterModel> getTransactionalActionParameter() { return componentModel.getAllParameterModels() .stream() .filter(p -> p.getModelProperty(TransactionalActionModelProperty.class).isPresent()) .findAny(); }
private List<ParameterModel> getMetadataKeyParts(ComponentModel componentModel) { return componentModel.getAllParameterModels().stream() .filter(p -> p.getModelProperty(MetadataKeyPartModelProperty.class).isPresent()) .collect(toList()); }
@Override public List<ValueProviderModel> getModels(String providerName) { return getValueProviderModels(componentModel.getAllParameterModels()); } }
private Optional<QueryParameterModelProperty> getQueryModelProperty() { return component.getAllParameterModels().stream() .filter(p -> p.getModelProperty(QueryParameterModelProperty.class).isPresent()) .map(p -> p.getModelProperty(QueryParameterModelProperty.class).get()) .findAny(); }
private List<ParameterModel> getMetadataKeyParts(ComponentModel componentModel) { return componentModel.getAllParameterModels().stream() .filter(p -> p.getModelProperty(MetadataKeyPartModelProperty.class).isPresent()) .sorted((p1, p2) -> { Optional<MetadataKeyPartModelProperty> mk1 = p1.getModelProperty(MetadataKeyPartModelProperty.class); Optional<MetadataKeyPartModelProperty> mk2 = p2.getModelProperty(MetadataKeyPartModelProperty.class); return mk1.get().getOrder() - mk2.get().getOrder(); }) .collect(toList()); } }
public void visitObject(ObjectType objectType) { List<ParameterModel> parts = model.getAllParameterModels().stream() .filter(p -> p.getModelProperty(MetadataKeyPartModelProperty.class).isPresent()).collect(toList()); List<ParameterModel> defaultParts = parts.stream().filter(p -> p.getDefaultValue() != null).collect(toList()); if (!defaultParts.isEmpty() && defaultParts.size() != parts.size()) { String typeName = ExtensionMetadataTypeUtils.getId(objectType).orElse("Anonymous type"); problemsReporter .addError(new Problem(model, format("%s '%s' uses the multilevel key of type '%s', which defines '%s' MetadataKeyPart with default values, but the type contains '%s' " + "MetadataKeyParts. All the annotated MetadataKeyParts should have a default value if at least one part " + "has a default value. Either add the missing defaults or remove all of them.", modelTypeName, model.getName(), typeName, defaultParts.size(), parts.size()))); } } });
public void setParameters(ParameterModel... parameterModels) { when(componentModel.getAllParameterModels()).thenReturn(asList(parameterModels)); }
private Optional<MetadataCacheId> resolveMetadataKeyParts(DslElementModel<?> elementModel, ComponentModel componentModel, boolean includeAllKeys) { if (!includeAllKeys) { boolean isMultilevel = componentModel.getModelProperty(MetadataKeyIdModelProperty.class) .map(MetadataKeyIdModelProperty::getType) .map(t -> t instanceof ObjectType) .orElse(false); boolean isPartialFetching = componentModel.getModelProperty(MetadataResolverFactoryModelProperty.class) .map(mp -> mp.getMetadataResolverFactory().getKeyResolver()) .map(resolver -> resolver instanceof PartialTypeKeysResolver) .orElse(false); if (!isMultilevel || !isPartialFetching) { return empty(); } } List<MetadataCacheId> parts = new ArrayList<>(); componentModel.getAllParameterModels().stream() .filter(p -> p.getModelProperty(MetadataKeyPartModelProperty.class).isPresent()) .map(metadataKeyPart -> elementModel.findElement(metadataKeyPart.getName())) .filter(Optional::isPresent) .map(Optional::get) .filter(partElement -> partElement.getValue().isPresent()) .forEach(partElement -> resolveKeyFromSimpleValue(partElement).ifPresent(parts::add)); return parts.isEmpty() ? empty() : of(new MetadataCacheId(parts, "metadataKey")); }
private ParameterModel getParameter(ComponentModel model, String parameterName) { return model.getAllParameterModels().stream() .filter(p -> p.getName().equals(parameterName)).findFirst() .orElseThrow(() -> new IllegalArgumentException("Parameter not found")); }
/** * For each of the Component's {@link ParameterModel} creates the corresponding {@link TypeMetadataDescriptor} using only its * static {@link MetadataType} and ignoring if any parameter has a dynamic type. * * @return A {@link List} containing a {@link MetadataResult} of {@link TypeMetadataDescriptor} for each input parameter using * only its static {@link MetadataType} and ignoring if any parameter has a dynamic type. */ MetadataResult<InputMetadataDescriptor> getInputMetadataDescriptors(MetadataContext context, Object key) { InputMetadataDescriptor.InputMetadataDescriptorBuilder input = InputMetadataDescriptor.builder(); List<MetadataResult<ParameterMetadataDescriptor>> results = new LinkedList<>(); for (ParameterModel parameter : component.getAllParameterModels()) { MetadataResult<ParameterMetadataDescriptor> result = getParameterMetadataDescriptor(parameter, context, key); input.withParameter(parameter.getName(), result.get()); results.add(result); } List<MetadataFailure> failures = results.stream().flatMap(e -> e.getFailures().stream()).collect(toList()); return failures.isEmpty() ? success(input.build()) : failure(input.build(), failures); }
private List<InputTypeResolver<Object>> getAllInputResolvers(ComponentModel componentModel, MetadataResolverFactory resolverFactory) { return componentModel.getAllParameterModels().stream().map(NamedObject::getName) .map(resolverFactory::getInputResolver).collect(toList()); }
fromChildCollectionConfiguration(Processor.class).build()); parseParameters(componentModel.getAllParameterModels()); } else { List<ParameterGroupModel> inlineGroups = getInlineGroups(componentModel); parseParameters(getFlatParameters(inlineGroups, componentModel.getAllParameterModels())); for (ParameterGroupModel group : inlineGroups) { parseInlineParameterGroup(group);
private List<ParameterModel> getMetadataKeyParts(ComponentModel componentModel) { return componentModel.getAllParameterModels().stream() .filter(p -> p.getModelProperty(MetadataKeyPartModelProperty.class).isPresent()) .collect(toList()); }
private Optional<ParameterModel> getTransactionalActionParameter() { return componentModel.getAllParameterModels() .stream() .filter(p -> p.getModelProperty(TransactionalActionModelProperty.class).isPresent()) .findAny(); }
@Override public List<ValueProviderModel> getModels(String providerName) { return getValueProviderModels(componentModel.getAllParameterModels()); } }
private Optional<QueryParameterModelProperty> getQueryModelProperty() { return component.getAllParameterModels().stream() .filter(p -> p.getModelProperty(QueryParameterModelProperty.class).isPresent()) .map(p -> p.getModelProperty(QueryParameterModelProperty.class).get()) .findAny(); }
public void visitObject(ObjectType objectType) { List<ParameterModel> parts = model.getAllParameterModels().stream() .filter(p -> p.getModelProperty(MetadataKeyPartModelProperty.class).isPresent()).collect(toList()); List<ParameterModel> defaultParts = parts.stream().filter(p -> p.getDefaultValue() != null).collect(toList()); if (!defaultParts.isEmpty() && defaultParts.size() != parts.size()) { String typeName = ExtensionMetadataTypeUtils.getId(objectType).orElse("Anonymous type"); problemsReporter .addError(new Problem(model, format("[%s] type multilevel key defines [%s] MetadataKeyPart with default values, but the type contains [%s] " + "MetadataKeyParts. All the annotated MetadataKeyParts should have a default value if at least one part " + "has a default value.", typeName, defaultParts.size(), parts.size()))); } } });
private List<ParameterModel> getMetadataKeyParts(ComponentModel componentModel) { return componentModel.getAllParameterModels().stream() .filter(p -> p.getModelProperty(MetadataKeyPartModelProperty.class).isPresent()) .sorted((p1, p2) -> { Optional<MetadataKeyPartModelProperty> mk1 = p1.getModelProperty(MetadataKeyPartModelProperty.class); Optional<MetadataKeyPartModelProperty> mk2 = p2.getModelProperty(MetadataKeyPartModelProperty.class); return mk1.get().getOrder() - mk2.get().getOrder(); }) .collect(toList()); } }
private ParameterModel getParameter(ComponentModel model, String parameterName) { return model.getAllParameterModels().stream() .filter(p -> p.getName().equals(parameterName)).findFirst() .orElseThrow(() -> new IllegalArgumentException("Parameter not found")); }