From 53d83244c1bf36af86e90ce5fe758a369f73563e Mon Sep 17 00:00:00 2001 From: "serena.spinoso" Date: Sat, 25 Feb 2017 12:00:55 +0100 Subject: Add verigraph code base JIRA: PARSER-111 Change-Id: Ie76e14fabbb6c388ebc89d9a15dd3021b25fa892 Signed-off-by: serena.spinoso --- .../escape/verify/validation/DpiValidator.java | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 verigraph/src/main/java/it/polito/escape/verify/validation/DpiValidator.java (limited to 'verigraph/src/main/java/it/polito/escape/verify/validation/DpiValidator.java') diff --git a/verigraph/src/main/java/it/polito/escape/verify/validation/DpiValidator.java b/verigraph/src/main/java/it/polito/escape/verify/validation/DpiValidator.java new file mode 100644 index 0000000..2666755 --- /dev/null +++ b/verigraph/src/main/java/it/polito/escape/verify/validation/DpiValidator.java @@ -0,0 +1,45 @@ +/******************************************************************************* + * Copyright (c) 2017 Politecnico di Torino and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Apache License, Version 2.0 + * which accompanies this distribution, and is available at + * http://www.apache.org/licenses/LICENSE-2.0 + *******************************************************************************/ + +package it.polito.escape.verify.validation; + +import com.fasterxml.jackson.databind.JsonNode; + +import it.polito.escape.verify.model.Configuration; +import it.polito.escape.verify.model.Graph; +import it.polito.escape.verify.model.Node; +import it.polito.escape.verify.validation.exception.ValidationException; + +public class DpiValidator implements ValidationInterface { + + public DpiValidator(){ + + } + + private void validateKey(String key) throws ValidationException { + if (!key.matches("\\w+")) + throw new ValidationException("'" + key + "' is not a valid configuration string for a 'dpi'"); + } + + @Override + public void validate(Graph graph, Node node, Configuration configuration) throws ValidationException { + + JsonNode conf = configuration.getConfiguration(); + + if (!conf.isArray()) { + throw new ValidationException("Configuration of a 'dpi' must be an array"); + } + for (JsonNode key : conf) { + if (!key.isTextual()) + throw new ValidationException("Configuration of a 'dpi' must be an array of strings"); + validateKey(key.asText()); + } + } + +} -- cgit 1.2.3-korg