push addional code
[sdc.git] / openecomp-be / lib / openecomp-sdc-validation-lib / openecomp-sdc-validation-api / src / main / java / org / openecomp / core / validation / types / MessageContainerUtil.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.core.validation.types;
22
23 import org.openecomp.sdc.datatypes.error.ErrorLevel;
24 import org.openecomp.sdc.datatypes.error.ErrorMessage;
25
26
27 import java.util.ArrayList;
28 import java.util.HashMap;
29 import java.util.List;
30 import java.util.Map;
31
32 public class MessageContainerUtil {
33
34   /**
35    * Gets message by level.
36    *
37    * @param level    the level
38    * @param messages the messages
39    * @return the message by level
40    */
41   public static Map<String,
42           List<ErrorMessage>> getMessageByLevel(
43           ErrorLevel level,Map<String,List<ErrorMessage>> messages) {
44     if (messages == null) {
45       return null;
46     }
47     Map<String, List<ErrorMessage>> filteredMessages = new HashMap<>();
48     messages.entrySet().stream().forEach(
49         entry -> entry.getValue().stream().filter(message -> message.getLevel().equals(level))
50             .forEach(message -> addMessage(entry.getKey(), message, filteredMessages
51             )));
52     return filteredMessages;
53   }
54
55   private static void addMessage(String fileName, ErrorMessage message,
56                                  Map<String, List<ErrorMessage>> messages) {
57     List<ErrorMessage> messageList = messages.get(fileName);
58     if (messageList == null) {
59       messageList = new ArrayList<>();
60       messages.put(fileName, messageList);
61     }
62     messageList.add(message);
63   }
64 }