ac2e5eccc20d48069efb58e23495886f060ca2a8
[sdc.git] /
1 /*
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2019 Nordix Foundation
4  *  ================================================================================
5  *  Licensed under the Apache License, Version 2.0 (the "License");
6  *  you may not use this file except in compliance with the License.
7  *  You may obtain a copy of the License at
8  *
9  *        http://www.apache.org/licenses/LICENSE-2.0
10  *  Unless required by applicable law or agreed to in writing, software
11  *  distributed under the License is distributed on an "AS IS" BASIS,
12  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *  See the License for the specific language governing permissions and
14  *  limitations under the License.
15  *
16  *  SPDX-License-Identifier: Apache-2.0
17  *  ============LICENSE_END=========================================================
18  */
19
20 package org.openecomp.core.impl;
21
22 import java.util.List;
23 import java.util.StringJoiner;
24 import org.apache.commons.collections.CollectionUtils;
25 import org.openecomp.sdc.datatypes.error.ErrorMessage;
26
27 /**
28  * Runtime exception for errors in import statements inside a TOSCA definition yaml file.
29  */
30 public class InvalidToscaDefinitionImportException extends RuntimeException {
31
32     private final String message;
33
34     /**
35      * Builds the exception message based on the provided validation error list.
36      * @param validationErrorList   The error list
37      */
38     public InvalidToscaDefinitionImportException(final List<ErrorMessage> validationErrorList) {
39         final StringBuilder stringBuilder = new StringBuilder();
40         stringBuilder.append("The provided package is invalid as it contains descriptors import errors:\n");
41         if (CollectionUtils.isNotEmpty(validationErrorList)) {
42             final StringJoiner joiner = new StringJoiner(";\n");
43             validationErrorList.forEach(
44                 errorMessage -> joiner.add(String.format("%s: %s", errorMessage.getLevel(), errorMessage.getMessage())));
45             message = stringBuilder.append(joiner.toString()).toString();
46         } else {
47             message = stringBuilder.toString();
48         }
49     }
50
51     @Override
52     public String getMessage() {
53         return message;
54     }
55 }