push addional code
[sdc.git] / openecomp-be / lib / openecomp-common-lib / src / main / java / org / openecomp / sdc / common / errors / ValidationErrorBuilder.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.sdc.common.errors;
22
23 /**
24  * The type Validation error builder.
25  */
26 public class ValidationErrorBuilder {
27
28   /**
29    * The constant FIELD_VALIDATION_ERROR_ERR_ID.
30    */
31   public static final String FIELD_VALIDATION_ERROR_ERR_ID = "FIELD_VALIDATION_ERROR_ERR_ID";
32   private static final String FIELD_VALIDATION_ERROR_ERR_MSG =
33       "Field does not conform to predefined criteria : %s : %s";
34   private static final String FIELD_VALIDATION_ERROR_ERR_MSG_USE_PREDEFINED_FOR_FIELD = "%s";
35   private static final String FIELD_WITH_PREDEFINED_MESSAGE = "arg\\d";
36
37
38   private final ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
39
40   /**
41    * Instantiates a new Validation error builder.
42    *
43    * @param detailedMessage the detailed message
44    * @param fieldName       the field name
45    */
46   public ValidationErrorBuilder(String detailedMessage, String fieldName) {
47     builder.withId(FIELD_VALIDATION_ERROR_ERR_ID);
48     builder.withCategory(ErrorCategory.APPLICATION);
49
50     if (fieldName.matches(FIELD_WITH_PREDEFINED_MESSAGE)) {
51       builder.withMessage(
52           String.format(FIELD_VALIDATION_ERROR_ERR_MSG_USE_PREDEFINED_FOR_FIELD, detailedMessage));
53     } else {
54       builder
55           .withMessage(String.format(FIELD_VALIDATION_ERROR_ERR_MSG, fieldName, detailedMessage));
56     }
57   }
58
59   /**
60    * Build error code.
61    *
62    * @return the error code
63    */
64   public ErrorCode build() {
65     return builder.build();
66   }
67
68 }