use of org.eclipse.winery.yaml.common.validator.support.Parameter in project winery by eclipse.
the class DefinitionValidator method validate.
public void validate(TServiceTemplate serviceTemplate) throws MultiException {
serviceTemplate.accept(definitionsVisitor, new Parameter());
serviceTemplate.accept(this, new Parameter());
if (hasExceptions()) {
throw getException();
}
}
use of org.eclipse.winery.yaml.common.validator.support.Parameter in project winery by eclipse.
the class ImportVisitor method visit.
@Override
public Result visit(TServiceTemplate node, Parameter parameter) {
Reader reader = Reader.getReader();
if (!this.namespace.equals(Namespaces.TOSCA_NS)) {
Set<String> typeDefinitions = new HashSet<>(Arrays.asList(Defaults.TOSCA_NORMATIVE_TYPES, Defaults.TOSCA_NONNORMATIVE_TYPES));
String tmpNamespace = this.namespace;
this.namespace = Namespaces.TOSCA_NS;
Path tmpDir = Utils.getTmpDir(Paths.get("types"));
for (String typeDefinition : typeDefinitions) {
try {
Path outFilePath = tmpDir.resolve(typeDefinition);
InputStream inputStream = this.getClass().getResourceAsStream(// Do not use File.separator here (https://stackoverflow.com/a/41677152/8235252)
"/".concat(typeDefinition));
Files.copy(inputStream, outFilePath, StandardCopyOption.REPLACE_EXISTING);
TServiceTemplate serviceTemplate = reader.parseSkipTest(outFilePath, Namespaces.TOSCA_NS);
if (Objects.nonNull(serviceTemplate)) {
serviceTemplate.accept(this, new Parameter());
}
} catch (MultiException e) {
setException(e);
} catch (Exception e) {
e.printStackTrace();
}
}
this.namespace = tmpNamespace;
}
super.visit(node, parameter);
return null;
}
use of org.eclipse.winery.yaml.common.validator.support.Parameter in project winery by eclipse.
the class Validator method validate.
public void validate(TServiceTemplate serviceTemplate, String namespace) throws MultiException {
if (Objects.isNull(serviceTemplate))
return;
TypeValidator typeValidator = new TypeValidator(path, namespace);
typeValidator.validate(serviceTemplate);
DefinitionValidator definitionValidator = new DefinitionValidator(path);
definitionValidator.validate(serviceTemplate);
serviceTemplate.accept(this, new Parameter());
if (this.hasExceptions())
throw this.getException();
}
use of org.eclipse.winery.yaml.common.validator.support.Parameter in project winery by eclipse.
the class ImportVisitor method visit.
@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;
}
use of org.eclipse.winery.yaml.common.validator.support.Parameter in project winery by eclipse.
the class TypeValidator method validate.
public void validate(TServiceTemplate serviceTemplate) throws MultiException {
serviceTemplate.accept(typeVisitor, new Parameter());
if (typeVisitor.hasExceptions()) {
this.setException(this.typeVisitor.getException());
}
serviceTemplate.accept(this, new Parameter());
if (this.hasExceptions()) {
throw this.getException();
}
}
Aggregations