public TServiceTemplate readImportDefinition(TImportDefinition definition, Path path, String namespace) throws MultiException { if (Objects.isNull(definition) || Objects.isNull(definition.getFile())) return null; String importNamespace = definition.getNamespaceUri() == null ? namespace : definition.getNamespaceUri(); if (Objects.nonNull(definition.getRepository())) { // TODO Support Repositories return null; } else { return readServiceTemplate(path, Paths.get(definition.getFile()), importNamespace); } } }
@Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof TImportDefinition)) return false; TImportDefinition that = (TImportDefinition) o; return Objects.equals(getFile(), that.getFile()) && Objects.equals(getRepository(), that.getRepository()) && Objects.equals(getNamespaceUri(), that.getNamespaceUri()) && Objects.equals(getNamespacePrefix(), that.getNamespacePrefix()); }
@Override public int hashCode() { return Objects.hash(getFile(), getRepository(), getNamespaceUri(), getNamespacePrefix()); }
@Override public String toString() { return "TImportDefinition{" + "file='" + getFile() + '\'' + ", repository=" + getRepository() + ", namespaceUri='" + getNamespaceUri() + '\'' + ", namespacePrefix='" + getNamespacePrefix() + '\'' + '}'; }
public Printer visit(TImportDefinition node, Parameter parameter) { return new Printer(parameter.getIndent()) .printKeyValue("file", node.getFile()) .printKeyValue("repository", node.getRepository()) .printKeyValue("namespace_uri", node.getNamespaceUri(), !node.getNamespaceUri().equals(Namespaces.DEFAULT_NS)) .printKeyValue("namespace_prefix", node.getNamespacePrefix()); }
/** * Converts TOSCA YAML TImportDefinitions and returns list of TOSCA XML TImports */ private TImport convert(TImportDefinition node, String name) { Reader reader = Reader.getReader(); String namespace = node.getNamespaceUri() == null ? this.namespace : node.getNamespaceUri(); try { org.eclipse.winery.model.tosca.yaml.TServiceTemplate serviceTemplate = reader.readImportDefinition(node, path, namespace); Converter converter = new Converter(this.repository); Definitions definitions = converter.convertY2X(serviceTemplate, getFileNameFromFile(node.getFile()), namespace, path, outPath); WriterUtils.saveDefinitions(definitions, outPath, namespace, name); TImport.Builder builder = new TImport.Builder(Namespaces.XML_NS); builder.setLocation(WriterUtils.getDefinitionsLocation(namespace, name)); builder.setNamespace(namespace); return builder.build(); } catch (MultiException e) { e.printStackTrace(); } return null; }