@Override public String toString() { return "TImportDefinition{" + "file='" + getFile() + '\'' + ", repository=" + getRepository() + ", namespaceUri='" + getNamespaceUri() + '\'' + ", namespacePrefix='" + getNamespacePrefix() + '\'' + '}'; }
public TImportDefinition build() { return new TImportDefinition(this); } }
public TImportDefinition(Builder builder) { this.setFile(builder.file); this.setRepository(builder.repository); this.setNamespaceUri(builder.namespaceUri); this.setNamespacePrefix(builder.namespacePrefix); }
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 Result visit(TImportDefinition node, Parameter parameter) { if (node.getNamespaceUri() == null && !parameter.reference.getNamespaceURI().equals(Namespaces.DEFAULT_NS)) { return null; } String namespace = node.getNamespaceUri() == null ? Namespaces.DEFAULT_NS : node.getNamespaceUri(); if (!this.visitors.containsKey(node)) { try { this.serviceTemplates.put(node, reader.readImportDefinition(node, path, namespace)); } catch (MultiException e) { setException(e); } this.visitors.put(node, new ReferenceVisitor(this.serviceTemplates.get(node), namespace, path)); } return this.visitors.get(node).visit(this.serviceTemplates.get(node), parameter); }
/** * 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; }
@Override public Result visit(TImportDefinition node, Parameter parameter) { if (!isDefined(node.getRepository(), definitionsVisitor.getRepositoryDefinitions())) { setException(new UndefinedField( "Repository definition '{}' is undefined", node.getRepository() ).setContext(parameter.getContext()) ); } return super.visit(node, parameter); }
@Override public Result visit(TServiceTemplate node, Parameter parameter) { Result result; if (parameter.reference.getNamespaceURI().equals(this.namespace) && "TArtifactType".equals(parameter.entityClass) && node.getArtifactTypes().containsKey(parameter.reference.getLocalPart())) { return node.getArtifactTypes().get(parameter.reference.getLocalPart()).accept(this, parameter.copy()); } for (TMapImportDefinition map : node.getImports()) { for (Map.Entry<String, TImportDefinition> entry : map.entrySet()) { result = entry.getValue().accept(this, parameter); if (result != null) { return result; } } } return null; }
@Override public Result visit(TImportDefinition node, Parameter parameter) { Reader reader = Reader.getReader(); String importNamespace = node.getNamespaceUri() == null ? this.namespace : node.getNamespaceUri(); try { TServiceTemplate serviceTemplate = reader.parse(node, path, importNamespace); if (serviceTemplate != null) { String tmpNamespace = this.namespace; this.namespace = importNamespace; this.visit(serviceTemplate, new Parameter()); this.namespace = tmpNamespace; } super.visit(node, parameter); } catch (MultiException e) { this.setException(e); } return null; }
@Override public int hashCode() { return Objects.hash(getFile(), getRepository(), getNamespaceUri(), getNamespacePrefix()); }
public Map<QName, Map<String, QName>> visit(TServiceTemplate node, Path path, Path outpath, String namespace) { for (TMapImportDefinition map : node.getImports()) { for (Map.Entry<String, TImportDefinition> entry : map.entrySet()) { Reader reader = Reader.getReader(); try { TServiceTemplate serviceTemplate = reader.parse(entry.getValue(), path, entry.getValue().getNamespaceUri()); visit(serviceTemplate, new Parameter(outpath, entry.getValue().getNamespaceUri()).setBuildSchema(false)); } catch (MultiException e) { setException(e); } } } this.visit(node, new Parameter(outpath, namespace)); return propertyDefinition; }
@Nullable public TImportDefinition buildImportDefinition(Object object, Parameter<TImportDefinition> parameter) { if (Objects.isNull(object)) return new TImportDefinition(); if (object instanceof String) return new TImportDefinition.Builder(stringValue(object)).build(); if (!validate(TImportDefinition.class, object, parameter)) return null; @SuppressWarnings("unchecked") Map<String, Object> map = (Map<String, Object>) object; return new TImportDefinition.Builder(stringValue(map.get("file"))) .setRepository(buildQName(stringValue(map.get("repository")))) .setNamespaceUri(stringValue(map.get("namespace_uri"))) .setNamespacePrefix(stringValue(map.get("namespace_prefix"))) .build(); }
@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()); }
try { Reader reader = Reader.getReader(); TServiceTemplate serviceTemplate = reader.parse(importDefinition.getValue(), parameter.getPath(), importDefinition.getValue().getNamespaceUri()); visit(serviceTemplate, new Parameter(parameter.getPath(), type.getNamespaceURI()) builder.addImports(importDefinition.getValue().getNamespaceUri(), getRelativeFileName(importDefinition.getValue().getNamespaceUri())); builder.addElements(entry.getKey(), entry.getValue()); } catch (MultiException e) {
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()); }
for (TMapImportDefinition map : node.getImports()) { for (Map.Entry<String, TImportDefinition> entry : map.entrySet()) { addImport(entry.getValue().getNamespaceUri(), new AbstractMap.SimpleEntry<>(entry));