Changed to unmaintained
[appc.git] / appc-config / appc-config-generator / provider / src / main / java / org / onap / sdnc / config / generator / tool / EscapeUtils.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP : APPC
4  * ================================================================================
5  * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Copyright (C) 2017 Amdocs
8  * =============================================================================
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  * 
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  * 
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  * 
21  * ============LICENSE_END=========================================================
22  */
23
24 package org.onap.sdnc.config.generator.tool;
25
26 import org.apache.commons.lang3.StringUtils;
27
28 public class EscapeUtils {
29
30     private EscapeUtils() {}
31
32     public static String escapeSql(String str) {
33         if (str == null) {
34             return null;
35         }
36         String[] searchList = new String[]{"'", "\\"};
37         String[] replacementList = new String[]{"''", "\\\\"};
38         return StringUtils.replaceEach(str, searchList, replacementList);
39     }
40
41     // Added for E2E defect 266908 Quote issue
42     public static String unescapeSql(String str) {
43         if (str == null) {
44             return null;
45         }
46         String[] searchList = new String[]{"''"};
47         String[] replacementList = new String[]{"'"};
48         return StringUtils.replaceEach(str, searchList, replacementList);
49     }
50
51
52     // For Generic Purpose
53     public static String escapeString(String s) {
54         if (s == null) {
55             return null;
56         }
57         int length = s.length();
58         int newLength = length;
59         for (char ch : s.toCharArray()) {
60             switch (ch) {
61                 case '\\':
62                 case '\"':
63                 case '\'':
64                 case '\0':
65                     newLength += 1;
66                     break;
67                 default:
68                     break;
69             }
70         }
71         if (length == newLength) {
72             // nothing to escape in the string
73             return s;
74         }
75         StringBuilder builder = new StringBuilder(newLength);
76         for (char ch : s.toCharArray()) {
77             switch (ch) {
78                 case '\\':
79                     builder.append("\\\\");
80                     break;
81                 case '\"':
82                     builder.append("\\\"");
83                     break;
84                 case '\'':
85                     builder.append("\\\'");
86                     break;
87                 case '\0':
88                     builder.append("\\0");
89                     break;
90                 default:
91                     builder.append(ch);
92             }
93         }
94         return builder.toString();
95     }
96 }