public Map<String, TInterfaceDefinition> convert(TInterfaces node) { if (Objects.isNull(node)) return null; return node.getInterface().stream() .filter(Objects::nonNull) .collect(Collectors.toMap( TInterface::getName, entry -> new TInterfaceDefinition.Builder() .addOperations(convertOperations(entry.getOperation(), new ArrayList<>())) .build() )); }
@Nullable public TInterfaceDefinition buildInterfaceDefinition(Object object, Parameter<TInterfaceDefinition> parameter) { if (Objects.isNull(object) || !validate(TInterfaceType.class, object, parameter)) return null; @SuppressWarnings("unchecked") Map<String, Object> map = (Map<String, Object>) object; return new TInterfaceDefinition.Builder() .setType(buildQName(stringValue(map.get("type")))) .setInputs(buildPropertyAssignmentOrDefinition(map.get("inputs"), new Parameter<>(parameter.getContext()).addContext("inputs") .setValue(parameter.getValue()) )) .setOperations(buildMap(object, new Parameter<TOperationDefinition>(parameter.getContext()) .setValue(parameter.getValue()).addContext("(operation)") .setBuilderOO(this::buildOperationDefinition) .setFilter(this::filterInterfaceAssignmentOperation) )) .build(); }
public T setType(QName type) { this.type = type; return self(); }
public T setOperations(Map<String, TOperationDefinition> operations) { this.operations = operations; return self(); }
public T addOperations(String name, TOperationDefinition operation) { if (name == null || name.isEmpty()) { return self(); } return addOperations(Collections.singletonMap(name, operation)); }
public T setInputs(Map<String, TPropertyAssignmentOrDefinition> inputs) { this.inputs = inputs; return self(); }
@NonNull public Map<String, TInterfaceDefinition> convert(TInterface node, @NonNull List<TImplementationArtifact> impl) { if (Objects.isNull(node)) return new LinkedHashMap<>(); return Collections.singletonMap( node.getName(), new TInterfaceDefinition.Builder() .setOperations(convertOperations(node.getOperation(), impl)) .build() ); }