From 280f8015d06af1f41a3ef12e8300801c7a5e0d54 Mon Sep 17 00:00:00 2001 From: AviZi Date: Fri, 9 Jun 2017 02:39:56 +0300 Subject: [SDC-29] Amdocs OnBoard 1707 initial commit. Change-Id: Ie4d12a3f574008b792899b368a0902a8b46b5370 Signed-off-by: AviZi --- .../core/validation/api/ValidationManager.java | 2 + .../errors/ErrorMessagesFormatBuilder.java | 2 +- .../openecomp/core/validation/errors/Messages.java | 117 --------------------- .../factory/ValidationManagerFactory.java | 1 + .../core/validation/interfaces/Validator.java | 36 ------- .../validation/types/FileValidationContext.java | 4 +- .../validation/types/GlobalValidationContext.java | 48 +++++---- .../core/validation/types/MessageContainer.java | 1 + .../validation/types/MessageContainerUtil.java | 64 ----------- .../core/validation/util/MessageContainerUtil.java | 63 +++++++++++ 10 files changed, 100 insertions(+), 238 deletions(-) delete mode 100644 openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/errors/Messages.java delete mode 100644 openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/interfaces/Validator.java delete mode 100644 openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/types/MessageContainerUtil.java create mode 100644 openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/util/MessageContainerUtil.java (limited to 'openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java') diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/api/ValidationManager.java b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/api/ValidationManager.java index d18af3a27b..9f75a08051 100644 --- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/api/ValidationManager.java +++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/api/ValidationManager.java @@ -21,6 +21,7 @@ package org.openecomp.core.validation.api; +import org.openecomp.core.validation.types.GlobalValidationContext; import org.openecomp.sdc.datatypes.error.ErrorMessage; import java.util.List; @@ -32,4 +33,5 @@ public interface ValidationManager { void addFile(String fileName, byte[] validationContent); + void updateGlobalContext(GlobalValidationContext globalContext); } diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/errors/ErrorMessagesFormatBuilder.java b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/errors/ErrorMessagesFormatBuilder.java index 210ce76c41..5f4833a90f 100644 --- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/errors/ErrorMessagesFormatBuilder.java +++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/errors/ErrorMessagesFormatBuilder.java @@ -20,8 +20,8 @@ package org.openecomp.core.validation.errors; -public class ErrorMessagesFormatBuilder { +public class ErrorMessagesFormatBuilder { public static String getErrorWithParameters(String error, String... params) { return String.format(error, params); } diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/errors/Messages.java b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/errors/Messages.java deleted file mode 100644 index bca4e820a9..0000000000 --- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/errors/Messages.java +++ /dev/null @@ -1,117 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.core.validation.errors; - -public enum Messages { - INVALID_ZIP_FILE("Invalid zip file"), - /* upload errors */ - - //NO_ZIP_UPLOADED("No zip file was uploaded or zip file doesn't exist"), - ZIP_SHOULD_NOT_CONTAIN_FOLDERS("Zip file should not contain folders"), - MANIFEST_NOT_EXIST("Manifest doesn't exist"), - NO_ZIP_FILE_WAS_UPLOADED_OR_ZIP_NOT_EXIST("no zip file was uploaded or zip file doesn't exist"), - - - /* manifest errors*/ - MISSING_FILE_IN_ZIP("Missing file in zip"), - MISSING_FILE_IN_MANIFEST("Missing file in manifest"), - MISSING_FILE_NAME_IN_MANIFEST("Missing file name in manifest - %s"), - MISSING_NESTED_FILE("Missing nested file - %s"), - MISSING_ARTIFACT("Missing artifact - %s"), - WRONG_HEAT_FILE_EXTENSION("Wrong HEAT file extension - %s"), - WRONG_ENV_FILE_EXTENSION("Wrong ENV file extension - %s"), - INVALID_MANIFEST_FILE("invalid manifest file"), - INVALID_FILE_TYPE("Missing or Unknown file type in Manifest"), - ENV_NOT_ASSOCIATED_TO_HEAT("ENV file must be associated to a HEAT file"), - - /* content errors*/ - INVALID_YAML_FORMAT("Invalid YAML format - %s"), - INVALID_YAML_FORMAT_REASON("Invalid YAML format Problem - [%s]"), - EMPTY_YAML_FILE("empty yaml"), - GENERAL_YAML_PARSER_ERROR("general parser error"), - GENERAL_HEAT_PARSER_ERROR("general parser error"), - INVALID_HEAT_FORMAT_REASON("Invalid HEAT format problem - [%s]"), - MISSING_RESOURCE_IN_DEPENDS_ON("a Missing resource in depend On Missing Resource ID [%s]"), - REFERENCED_PARAMETER_NOT_FOUND("Referenced parameter - %s - not found, used in resource - %s"), - GET_ATTR_NOT_FOUND("get_attr attribute not found - %s in resource %s"), - MISSING_PARAMETER_IN_NESTED( - "Referenced parameter not found in nested file - %s, resource name - %s, " - + "parameter name - %s"), - NESTED_LOOP("Nested files loop - %s"), - MORE_THAN_ONE_BIND_FROM_NOVA_TO_PORT("Resource Port %s exceed allowed relations from NovaServer"), - SERVER_NOT_DEFINED_FROM_NOVA("Missing server group definition - %s, %s"), - WRONG_POLICY_IN_SERVER_GROUP("Wrong policy in server group - %s"), - MISSING_IMAGE_AND_FLAVOR("Missing both Image and Flavor in NOVA Server - %s"), - ENV_INCLUDES_PARAMETER_NOT_IN_HEAT("Env file %s includes a parameter not in HEAT - %s"), - PARAMETER_ENV_VALUE_NOT_ALIGN_WITH_TYPE("Parameter env value %s not align with type"), - PARAMETER_DEFAULT_VALUE_NOT_ALIGN_WITH_TYPE( - "Parameter - %s default value not align with type %s"), - INVALID_RESOURCE_TYPE("A resource has an invalid or unsupported type - %s, Resource ID [%s]"), - ARTIFACT_FILE_NOT_REFERENCED("Artifact file is not referenced."), - SERVER_OR_SECURITY_GROUP_NOT_IN_USE("%s not in use, Resource Id [%s]"), - PORT_NO_BIND_TO_ANY_NOVA_SERVER("Port not bind to any NOVA Server, Resource Id [%s]"), - INVALID_GET_RESOURCE_SYNTAX( - "invalid get_resource syntax is in use - %s , get_resource function should" - + " get the resource id of the referenced resource"), - INVALID_RESOURCE_GROUP_TYPE( - "OS::Heat::ResourceGroup resource with resource_def which is not " - + "pointing to nested heat file is not supported," - + " Resource ID [%s], resource_def type [%s]"), - - /* warnings */ - REFERENCED_RESOURCE_NOT_FOUND("Referenced resource - %s not found"), - MISSING_GET_PARAM("Missing get_param in %s, Resource Id [%s]"), - - /*Ecomp Guide lines*/ - MISSING_NOVA_SERVER_METADATA("Missing Nova Server Metadata property Resource id [%s]"), - MISSING_NOVA_SERVER_VNF_ID("Missing VNF_ID Resource id [%s]"), - MISSING_NOVA_SERVER_VF_MODULE_ID("Missing VF_MODULE_ID, Resource id [%s]"), - NETWORK_PARAM_NOT_ALIGNED_WITH_GUIDE_LINE( - "Network Parameter Name not aligned with Guidelines Parameter Name [%s] Resource ID [%s]"), - MISSIN_BASE_HEAT_FILE( - "Missing Base HEAT. Pay attention that without Base HEAT, there will be no shared resources"), - MULTI_BASE_HEAT_FILE("Multi Base HEAT. Expected only one. Files %s."), - RESOURCE_NOT_DEFINED_IN_OUTPUT( - "Resource is not defined as output and thus cannot be Shared. resource id - %s"), - RESOURCE_CONNECTED_TO_TWO_EXTERNAL_NETWORKS_WITH_SAME_ROLE( - "A resource is connected twice to the same network role Resource ID [%s] Network Role [%s]."), - VOLUME_HEAT_NOT_EXPOSED("Volume is not defined as output and thus cannot be attached %s"), - FLOATING_IP_NOT_IN_USE("OS::Neutron::FloatingIP is in use, Resource ID [%s]"), - FIXED_IPS_NOT_ALIGNED_WITH_GUIDE_LINES("Fixed_IPS not aligned with Guidelines, Resource ID [%s]"), - NOVA_SERVER_NAME_NOT_ALIGNED_WITH_GUIDE_LINES( - "Server Name not aligned with Guidelines, Resource ID [%s]"), - AVAILABILITY_ZONE_NOT_ALIGNED_WITH_GUIDE_LINES( - "Server Availability Zone not aligned with Guidelines, Resource ID [%s]"), - WRONG_IMAGE_OR_FLAVOR_NAME_NOVA_SERVER("Wrong %s name format in NOVA Server, Resource ID [%s]"); - - - private String errorMessage; - - Messages(String errorMessage) { - this.errorMessage = errorMessage; - } - - public String getErrorMessage() { - return errorMessage; - } - - -} diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/factory/ValidationManagerFactory.java b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/factory/ValidationManagerFactory.java index 6031bc14f7..36beab10cf 100644 --- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/factory/ValidationManagerFactory.java +++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/factory/ValidationManagerFactory.java @@ -24,6 +24,7 @@ import org.openecomp.core.factory.api.AbstractComponentFactory; import org.openecomp.core.factory.api.AbstractFactory; import org.openecomp.core.validation.api.ValidationManager; + public abstract class ValidationManagerFactory extends AbstractComponentFactory { public static ValidationManagerFactory getInstance() { diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/interfaces/Validator.java b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/interfaces/Validator.java deleted file mode 100644 index e32dfd72b9..0000000000 --- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/interfaces/Validator.java +++ /dev/null @@ -1,36 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.core.validation.interfaces; - -import org.openecomp.core.validation.types.GlobalValidationContext; - -public interface Validator { - - //public void validate(String fileName, GlobalValidationContext globalContext); - void validate(GlobalValidationContext globalContext); - //Object convert(FileValidationContext - // fileValidationContext); - - /*default boolean filter(FileValidationContext filecontext, - GlobalValidationContext globalValidationContext){ - return true; - }*/ -} diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/types/FileValidationContext.java b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/types/FileValidationContext.java index 81e8931dab..993ea6b4df 100644 --- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/types/FileValidationContext.java +++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/types/FileValidationContext.java @@ -24,6 +24,7 @@ package org.openecomp.core.validation.types; import java.io.ByteArrayInputStream; import java.io.InputStream; + public class FileValidationContext { private String fileName; private MessageContainer messageContainer = new MessageContainer(); @@ -40,7 +41,8 @@ public class FileValidationContext { } public InputStream getContent() { - return new ByteArrayInputStream(content); + ByteArrayInputStream is = new ByteArrayInputStream(content); + return is; } public String getFileName() { diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/types/GlobalValidationContext.java b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/types/GlobalValidationContext.java index e6917e84f6..1fb31a3d8d 100644 --- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/types/GlobalValidationContext.java +++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/types/GlobalValidationContext.java @@ -21,23 +21,24 @@ package org.openecomp.core.validation.types; import org.apache.commons.collections4.CollectionUtils; -import org.openecomp.core.utilities.CommonMethods; -import org.openecomp.core.validation.interfaces.Validator; -import org.openecomp.sdc.common.utils.AsdcCommon; +import org.openecomp.sdc.logging.api.Logger; +import org.openecomp.sdc.logging.api.LoggerFactory; import org.openecomp.sdc.datatypes.error.ErrorLevel; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.openecomp.sdc.logging.context.MdcUtil; +import org.openecomp.sdc.logging.types.LoggerConstants; +import org.openecomp.sdc.logging.types.LoggerErrorCode; import java.io.InputStream; import java.util.Collection; import java.util.HashMap; import java.util.Map; +import java.util.Optional; import java.util.function.BiPredicate; import java.util.stream.Collectors; public class GlobalValidationContext { - private static Logger logger = LoggerFactory.getLogger(Validator.class); + private static Logger logger = (Logger) LoggerFactory.getLogger(GlobalValidationContext.class); private Map fileContextMap = new HashMap<>(); private Map messageContainerMap = new HashMap<>(); @@ -47,18 +48,21 @@ public class GlobalValidationContext { * @param fileName the file name * @param level the level * @param message the message + * @param targetServiceName the target service name + * @param errorDescription the error details */ - public void addMessage(String fileName, ErrorLevel level, String message) { + public void addMessage(String fileName, ErrorLevel level, String message, + String targetServiceName, String errorDescription) { - printLog(fileName, message, level); + printLog(fileName, message, level, targetServiceName, errorDescription); if (fileContextMap.containsKey(fileName)) { - fileContextMap.get(fileName).getMessageContainer().getMessageBuilder().setMessage(message) - .setLevel(level).create(); + fileContextMap.get(fileName).getMessageContainer().getMessageBuilder() + .setMessage(level.toString() + ": " + message).setLevel(level).create(); } else { - if (CommonMethods.isEmpty(fileName)) { - fileName = AsdcCommon.UPLOAD_FILE; - } +// if (CommonMethods.isEmpty(fileName)) { +// fileName = SdcCommon.UPLOAD_FILE; +// } MessageContainer messageContainer; synchronized (this) { messageContainer = messageContainerMap.get(fileName); @@ -67,7 +71,8 @@ public class GlobalValidationContext { messageContainerMap.put(fileName, messageContainer); } } - messageContainer.getMessageBuilder().setMessage(message).setLevel(level).create(); + messageContainer.getMessageBuilder().setMessage(level.toString() + ": " + message) + .setLevel(level).create(); } } @@ -77,12 +82,12 @@ public class GlobalValidationContext { * @param fileName the file name * @return the file content */ - public InputStream getFileContent(String fileName) { + public Optional getFileContent(String fileName) { FileValidationContext fileContext = fileContextMap.get(fileName); if (fileContext == null || fileContext.isEmpty()) { - return null; + return Optional.empty(); } - return fileContext.getContent(); + return Optional.of(fileContext.getContent()); } public void addFileContext(String fileName, byte[] fileContent) { @@ -100,7 +105,8 @@ public class GlobalValidationContext { fileContextMap.entrySet().stream().filter(entry -> CollectionUtils .isNotEmpty(entry.getValue().getMessageContainer().getErrorMessageList())).forEach( entry -> contextMessageContainer.put( - entry.getKey(), entry.getValue().getMessageContainer())); + entry.getKey(), entry.getValue() + .getMessageContainer())); messageContainerMap.entrySet().stream() .filter(entry -> CollectionUtils.isNotEmpty(entry.getValue().getErrorMessageList())) .forEach(entry -> contextMessageContainer.put(entry.getKey(), entry.getValue())); @@ -111,9 +117,12 @@ public class GlobalValidationContext { return fileContextMap; } - private void printLog(String fileName, String message, ErrorLevel level) { + private void printLog(String fileName, String message, ErrorLevel level, String targetServiceName, + String errorDescription) { String messageToPrint = message + " in file[" + fileName + "]"; + MdcUtil.setValuesForMdc(LoggerConstants.TARGET_ENTITY_API, targetServiceName, level.name(), + LoggerErrorCode.DATA_ERROR.getErrorCode(), errorDescription); switch (level) { case ERROR: @@ -130,6 +139,7 @@ public class GlobalValidationContext { } } + public Collection files(BiPredicate func) { return fileContextMap.keySet().stream().filter(t -> func.test(t, this)) .collect(Collectors.toList()); diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/types/MessageContainer.java b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/types/MessageContainer.java index 9d37bade67..977c5cc27d 100644 --- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/types/MessageContainer.java +++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/types/MessageContainer.java @@ -27,6 +27,7 @@ import java.util.ArrayList; import java.util.List; import java.util.function.Predicate; + public class MessageContainer { private List errorMessageList = new ArrayList<>(); diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/types/MessageContainerUtil.java b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/types/MessageContainerUtil.java deleted file mode 100644 index c678bb5014..0000000000 --- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/types/MessageContainerUtil.java +++ /dev/null @@ -1,64 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.core.validation.types; - -import org.openecomp.sdc.datatypes.error.ErrorLevel; -import org.openecomp.sdc.datatypes.error.ErrorMessage; - - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -public class MessageContainerUtil { - - /** - * Gets message by level. - * - * @param level the level - * @param messages the messages - * @return the message by level - */ - public static Map> getMessageByLevel( - ErrorLevel level,Map> messages) { - if (messages == null) { - return null; - } - Map> filteredMessages = new HashMap<>(); - messages.entrySet().stream().forEach( - entry -> entry.getValue().stream().filter(message -> message.getLevel().equals(level)) - .forEach(message -> addMessage(entry.getKey(), message, filteredMessages - ))); - return filteredMessages; - } - - private static void addMessage(String fileName, ErrorMessage message, - Map> messages) { - List messageList = messages.get(fileName); - if (messageList == null) { - messageList = new ArrayList<>(); - messages.put(fileName, messageList); - } - messageList.add(message); - } -} diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/util/MessageContainerUtil.java b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/util/MessageContainerUtil.java new file mode 100644 index 0000000000..8c78f4942b --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/util/MessageContainerUtil.java @@ -0,0 +1,63 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.openecomp.core.validation.util; + +import org.openecomp.sdc.datatypes.error.ErrorLevel; +import org.openecomp.sdc.datatypes.error.ErrorMessage; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +public class MessageContainerUtil { + /** + * Gets message by level. + * + * @param level the level + * @param messages the messages + * @return the message by level + */ + public static Map> getMessageByLevel(ErrorLevel level, + Map> + messages) { + if (messages == null) { + return null; + } + Map> filteredMessages = new HashMap<>(); + messages.entrySet().stream().forEach( + entry -> entry.getValue().stream().filter(message -> message.getLevel().equals(level)) + .forEach(message -> addMessage(entry.getKey(), message, filteredMessages + ))); + return filteredMessages; + } + + private static void addMessage(String fileName, ErrorMessage message, + Map> messages) { + List messageList = messages.get(fileName); + if (messageList == null) { + messageList = new ArrayList<>(); + messages.put(fileName, messageList); + } + messageList.add(message); + } +} -- cgit 1.2.3-korg