@NonNull public <T extends TEntityType.Builder<T>> T buildEntityType(Object object, Parameter<T> parameter) { if (Objects.isNull(object) || !validate(parameter.getClazz(), object, parameter)) return parameter.getBuilder(); @SuppressWarnings("unchecked") Map<String, Object> map = (Map<String, Object>) object; return parameter.getBuilder() .setDescription(buildDescription(map.get("description"))) .setVersion(buildVersion(map.get("version"))) .setDerivedFrom(buildQName(stringValue(map.get("derived_from")))) .setProperties(buildMap(map, "properties", this::buildPropertyDefinition, TPropertyDefinition.class, parameter)) .setAttributes(buildMap(map, "attributes", this::buildAttributeDefinition, parameter)) .setMetadata(buildMetadata(map.get("metadata"))); }
public T addAttributes(String name, TAttributeDefinition attribute) { if (name == null || name.isEmpty()) { return self(); } return addAttributes(Collections.singletonMap(name, attribute)); }
public T addProperties(String name, TPropertyDefinition property) { if (name == null || name.isEmpty()) { return self(); } return addProperties(Collections.singletonMap(name, property)); }
public T setProperties(Map<String, TPropertyDefinition> properties) { this.properties = properties; return self(); }
public T setVersion(TVersion version) { this.version = version; return self(); }
public T setDescription(String description) { this.description = description; return self(); }
public T setAttributes(Map<String, TAttributeDefinition> attributes) { this.attributes = attributes; return self(); }
public T addMetadata(String key, String value) { Metadata metadata = new Metadata(); metadata.put(key, value); return addMetadata(metadata); }
public T setMetadata(Metadata metadata) { this.metadata = metadata; return self(); }
public <T extends org.eclipse.winery.model.tosca.yaml.TEntityType.Builder<T>> T convert(TEntityType node, T builder, Class<? extends TEntityType> clazz) { return builder.setDescription(convertDocumentation(node.getDocumentation())) .setDerivedFrom(convert(node.getDerivedFrom(), clazz)) .setMetadata(convert(node.getTags())) .addMetadata("targetNamespace", node.getTargetNamespace()) .addMetadata("abstract", node.getAbstract().value()) .addMetadata("final", node.getFinal().value()) .setProperties(convert(node, node.getPropertiesDefinition())); }
public T setDerivedFrom(QName derivedFrom) { this.derivedFrom = derivedFrom; return self(); }
public T addMetadata(Metadata metadata) { if (Objects.isNull(this.metadata)) { this.metadata = metadata; } else { this.metadata.putAll(metadata); } return self(); }