@Override public String toString() { return "TRequirementDefinition{" + "capability=" + getCapability() + ", node=" + getNode() + ", relationship=" + getRelationship() + ", occurrences=" + getOccurrences() + ", description='" + getDescription() + '\'' + '}'; }
public TRequirementDefinition build() { return new TRequirementDefinition(this); } }
public TRequirementDefinition(Builder builder) { this.setCapability(builder.capability); this.setOccurrences(builder.occurrences); this.setNode(builder.node); this.setRelationship(builder.relationship); this.setDescription(builder.description); }
/** * Converts TOSCA YAML RequirementDefinition to TOSCA XML RequirementDefinition * * @param node TOSCA YAML RequirementDefinition * @return TOSCA XML RequirementDefinition */ private TRequirementDefinition convert(org.eclipse.winery.model.tosca.yaml.TRequirementDefinition node, String id) { if (Objects.isNull(node)) return null; // TOSCA YAML does not have RequirementTypes: // * construct TOSCA XML RequirementType from TOSCA YAML Requirement Definition return new TRequirementDefinition.Builder(id, convertRequirementDefinition( node, getRequirementTypeName(node.getCapability(), id) )) .setLowerBound(node.getLowerBound()) .setUpperBound(node.getUpperBound()) .build(); }
/** * Convert TOSCA YAML RequirementDefinition to TOSCA XML RequirementType * * @param node TOSCA YAML RequirementDefinition * @param id with name of the TRequirementType * @return QName of the TOSCA XML RequirementType */ private QName convertRequirementDefinition(org.eclipse.winery.model.tosca.yaml.TRequirementDefinition node, String id) { if (node == null) return null; String namespace = Optional.ofNullable(node.getCapability()).map(QName::getNamespaceURI).orElse(this.namespace); TRequirementType result = new TRequirementType.Builder(id) .setRequiredCapabilityType(node.getCapability()) .setTargetNamespace(namespace) .build(); requirementTypes.add(result); return new QName(namespace, result.getName()); }
@NonNull public Integer getLowerBound() { return Integer.valueOf(this.getOccurrences().get(0)); }
@Override public R visit(TRequirementDefinition node, P parameter) { return visitElement(node.getRelationship(), parameter, "constraints"); }
@NonNull public String getUpperBound() { return this.getOccurrences().get(1); }
@Override public int hashCode() { return Objects.hash(getCapability(), getNode(), getRelationship(), getOccurrences(), getDescription()); }
@Nullable public TRequirementDefinition buildRequirementDefinition(Object object, Parameter<TRequirementDefinition> parameter) { if (Objects.isNull(object)) return new TRequirementDefinition(); if (object instanceof String) return new TRequirementDefinition.Builder(buildQName(stringValue(object))).build(); if (!validate(TRequirementDefinition.class, object, parameter)) return null; @SuppressWarnings("unchecked") Map<String, Object> map = (Map<String, Object>) object; return new TRequirementDefinition.Builder(buildQName(stringValue(map.get("capability")))) .setNode(buildQName(stringValue(map.get("node")))) .setRelationship(buildRelationshipDefinition(map.get("relationship"), new Parameter<TRelationshipDefinition>(parameter.getContext()).addContext("relationship") )) .setOccurrences(buildListString(map.get("occurrences"), new Parameter<List<String>>(parameter.getContext()).addContext("occurrences") )) .build(); }
@Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof TRequirementDefinition)) return false; TRequirementDefinition that = (TRequirementDefinition) o; return Objects.equals(getCapability(), that.getCapability()) && Objects.equals(getNode(), that.getNode()) && Objects.equals(getRelationship(), that.getRelationship()) && Objects.equals(getOccurrences(), that.getOccurrences()) && Objects.equals(getDescription(), that.getDescription()); }
public Printer visit(TRequirementDefinition node, Parameter parameter) { return new Printer(parameter.getIndent()) .printKeyValue("capability", node.getCapability()) .printKeyValue("node", node.getNode()) .print(printVisitorNode(node.getRelationship(), new Parameter(parameter.getIndent()).addContext("relationship"))) .printKeyValue("occurrences", node.getOccurrences()) .printKeyValue("description", node.getDescription()); }