re base code
[sdc.git] / common-app-api / src / main / java / org / openecomp / sdc / common / log / enums / EcompLoggerErrorCode.java
1 package org.openecomp.sdc.common.log.enums;
2
3 import java.util.Arrays;
4 import java.util.Optional;
5
6 /**
7  * Created by dd4296 on 12/26/2017.
8  */
9 public enum EcompLoggerErrorCode {
10     SUCCESS(0),
11     PERMISSION_ERROR(100),
12     AVAILABILITY_TIMEOUTS_ERROR(200),
13     DATA_ERROR(300),
14     SCHEMA_ERROR(400),
15     BUSINESS_PROCESS_ERROR(500),
16     UNKNOWN_ERROR(900);
17
18     private int errorCode;
19
20     EcompLoggerErrorCode(int errorCode) {
21         this.errorCode = errorCode;
22     }
23
24     public int getErrorCode() {
25         return errorCode;
26     }
27
28     public static EcompLoggerErrorCode getByValue(String ecompErrorCode) {
29         String errorPrefix = parseCode(ecompErrorCode);
30         Optional<EcompLoggerErrorCode> optionalCode = Arrays.stream(values()).filter(v->isCode(v, errorPrefix)).findFirst();
31         return optionalCode.orElse(UNKNOWN_ERROR);
32     }
33
34     private static boolean isCode(EcompLoggerErrorCode ecompLoggerErrorCode, String errorPrefix) {
35         return String.valueOf(ecompLoggerErrorCode.getErrorCode()).contains(errorPrefix);
36     }
37
38     private static String parseCode(String errorCode) {
39         try {
40             return errorCode.substring("E_".length(), 3);
41         } catch (StringIndexOutOfBoundsException ex) {
42             return UNKNOWN_ERROR.name();
43         }
44     }
45
46
47 }