c30eff1697fb10a6e7e2c68770dc48e6070d1448
[holmes/common.git] / holmes-actions / src / main / java / org / openo / holmes / common / utils / I18nProxy.java
1 /**\r
2  * Copyright 2017 ZTE Corporation.\r
3  *\r
4  * Licensed under the Apache License, Version 2.0 (the "License");\r
5  * you may not use this file except in compliance with the License.\r
6  * You may obtain a copy of the License at\r
7  *\r
8  *     http://www.apache.org/licenses/LICENSE-2.0\r
9  *\r
10  * Unless required by applicable law or agreed to in writing, software\r
11  * distributed under the License is distributed on an "AS IS" BASIS,\r
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  * See the License for the specific language governing permissions and\r
14  * limitations under the License.\r
15  */\r
16 package org.openo.holmes.common.utils;\r
17 \r
18 import com.fasterxml.jackson.core.JsonProcessingException;\r
19 import java.util.Arrays;\r
20 import java.util.Locale;\r
21 import java.util.Map;\r
22 import java.util.Optional;\r
23 import lombok.extern.slf4j.Slf4j;\r
24 import org.openo.baseservice.i18n.I18n;\r
25 \r
26 @Slf4j\r
27 public class I18nProxy {\r
28 \r
29     /*-----------------------Engine------------------------------- */\r
30     public static final String ENGINE_CONTENT_ILLEGALITY = "ENGINE_CONTENT_ILLEGALITY";\r
31     public static final String ENGINE_DEPLOY_RULE_FAILED = "ENGINE_DEPLOY_RULE_FAILED";\r
32     public static final String ENGINE_DELETE_RULE_NULL = "ENGINE_DELETE_RULE_NULL";\r
33     public static final String ENGINE_DELETE_RULE_FAILED = "ENGINE_DELETE_RULE_FAILED";\r
34     public static final String ENGINE_INSERT_RULE_CACHE_FAILED = "ENGINE_INSERT_RULE_CACHE_FAILED";\r
35     public static final String ENGINE_DELETE_RULE_FAILED_FROM_CACHE = "ENGINE_DELETE_RULE_FAILED_FROM_CACHE";\r
36     public static final String ENGINE_CONTAINS_PACKAGE = "ENGINE_CONTAINS_PACKAGE";\r
37     public static final String ENGINE_QUERY_CACHE_FAILED = "ENGINE_QUERY_CACHE_FAILED";\r
38     /*-----------------------Rule Management------------------------------- */\r
39     public static final String RULE_MANAGEMENT_CALL_DELETE_RULE_REST_FAILED = "RULE_MANAGEMENT_CALL_DELETE_RULE_REST_FAILED";\r
40     public static final String RULE_MANAGEMENT_CALL_DEPLOY_RULE_REST_FAILED = "RULE_MANAGEMENT_CALL_DEPLOY_RULE_REST_FAILED";\r
41     public static final String RULE_MANAGEMENT_CALL_CHECK_RULE_REST_FAILED = "RULE_MANAGEMENT_CALL_CHECK_RULE_REST_FAILED";\r
42     public static final String RULE_MANAGEMENT_CREATE_QUERY_SQL_FAILED = "RULE_MANAGEMENT_CREATE_QUERY_SQL_FAILED";\r
43     public static final String RULE_MANAGEMENT_QUERY_RULE_FAILED = "RULE_MANAGEMENT_QUERY_RULE_FAILED";\r
44     public static final String RULE_MANAGEMENT_REQUEST_OBJECT_IS_EMPTY = "RULE_MANAGEMENT_REQUEST_OBJECT_IS_EMPTY";\r
45     public static final String RULE_MANAGEMENT_RULE_NAME_CANNOT_BE_EMPTY = "RULE_MANAGEMENT_RULE_NAME_CANNOT_BE_EMPTY";\r
46     public static final String RULE_MANAGEMENT_RULE_NOT_EXIST_DATABASE = "RULE_MANAGEMENT_RULE_NOT_EXIST_DATABASE";\r
47     public static final String RULE_MANAGEMENT_REPEAT_RULE_NAME = "RULE_MANAGEMENT_REPEAT_RULE_NAME";\r
48     public static final String RULE_MANAGEMENT_DATA_FORMAT_ERROR = "RULE_MANAGEMENT_DATA_FORMAT_ERROR";\r
49     public static final String RULE_MANAGEMENT_PARAMETER_ENABLED_ERROR = "RULE_MANAGEMENT_PARAMETER_ENABLED_ERROR";\r
50     public static final String RULE_MANAGEMENT_DB_ERROR = "RULE_MANAGEMENT_DB_ERROR";\r
51     public static final String RULE_MANAGEMENT_PARSE_DEPLOY_RESULT_ERROR = "RULE_MANAGEMENT_PARSE_DEPLOY_RESULT_ERROR";\r
52     public static final String RULE_MANAGEMENT_CHECK_NO_PASS = "RULE_MANAGEMENT_CHECK_NO_PASS";\r
53     public static final String RULE_MANAGEMENT_CONTENT_CANNOT_BE_EMPTY = "RULE_MANAGEMENT_CONTENT_CANNOT_BE_EMPTY";\r
54     private Optional<I18n> optional = null;\r
55 \r
56     private I18nProxy() {\r
57         optional = I18n.getInstance("correlation");\r
58     }\r
59 \r
60     private static class I18nProxyHolder {\r
61 \r
62         private static final I18nProxy INSTANCE = new I18nProxy();\r
63 \r
64         private I18nProxyHolder() {\r
65 \r
66         }\r
67     }\r
68 \r
69     public static I18nProxy getInstance() {\r
70         return I18nProxyHolder.INSTANCE;\r
71     }\r
72 \r
73     public String getValue(Locale locale, String key) {\r
74         return optional.get().getLabelValue(key, locale);\r
75     }\r
76 \r
77     public String getValueByArgs(Locale locale, String key, String[] arguments) {\r
78         return optional.get().getLabelValue(key, locale, arguments);\r
79     }\r
80 \r
81     public Map<String, String> getValue(String key) {\r
82         return optional.get().getLabelValues(key);\r
83     }\r
84 \r
85     public String jsonI18n(String key) {\r
86 \r
87         return optional.get().getCanonicalLabelValues(key);\r
88     }\r
89 \r
90     public String i18nWithArgs(String key, String[] args) {\r
91         String value = "";\r
92         try {\r
93             value = JacksonUtil.beanToJson(optional.get().getLabelValues(key, args));\r
94         } catch (JsonProcessingException e) {\r
95             log.warn("get i18n error, key is :" + key, e);\r
96         } catch (IllegalArgumentException e) {\r
97             log.warn("get i18n error IllegalArgumentException, key is :" + key + ",args is :  " + Arrays.toString(args),\r
98                     e);\r
99         }\r
100 \r
101         return value;\r
102     }\r
103 \r
104 }\r