Fix OSGi wiring issues
[ccsdk/features.git] / blueprints-processor / plugin / generator-provider / src / main / java / org / onap / ccsdk / features / generator / tool / EscapeUtils.java
1 /*\r
2  * Copyright © 2017-2018 AT&T Intellectual Property.\r
3  * Modifications Copyright © 2018 IBM.\r
4  * \r
5  * Licensed under the Apache License, Version 2.0 (the "License");\r
6  * you may not use this file except in compliance with the License.\r
7  * You may obtain a copy of the License at\r
8  * \r
9  * http://www.apache.org/licenses/LICENSE-2.0\r
10  * \r
11  * Unless required by applicable law or agreed to in writing, software\r
12  * distributed under the License is distributed on an "AS IS" BASIS,\r
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
14  * See the License for the specific language governing permissions and\r
15  * limitations under the License.\r
16  */\r
17 \r
18 package org.onap.ccsdk.features.generator.tool;\r
19 \r
20 import org.apache.commons.lang3.StringUtils;\r
21 \r
22 @SuppressWarnings("squid:S1118")\r
23 public class EscapeUtils {\r
24 \r
25     public static String escapeSql(String str) {\r
26         if (str == null) {\r
27             return null;\r
28         }\r
29         String[] searchList = new String[] {"'", "\\"};\r
30         String[] replacementList = new String[] {"''", "\\\\"};\r
31         return StringUtils.replaceEach(str, searchList, replacementList);\r
32     }\r
33 \r
34     // For Generic Purpose\r
35     public static String escapeSequence(String s) {\r
36         if (s == null) {\r
37             return null;\r
38         }\r
39 \r
40         int length = s.length();\r
41         int newLength = length;\r
42         for (int i = 0; i < length; i++) {\r
43             char c = s.charAt(i);\r
44             switch (c) {\r
45                 case '\\':\r
46                 case '\"':\r
47                 case '\'':\r
48                 case '\0':\r
49                     newLength += 1;\r
50                     break;\r
51                 default:\r
52                     // do nothing\r
53             }\r
54         }\r
55         if (length == newLength) {\r
56             // nothing to escape in the string\r
57             return s;\r
58         }\r
59         StringBuilder sb = new StringBuilder(newLength);\r
60         for (int i = 0; i < length; i++) {\r
61             char c = s.charAt(i);\r
62             switch (c) {\r
63                 case '\\':\r
64                     sb.append("\\\\");\r
65                     break;\r
66                 case '\"':\r
67                     sb.append("\\\"");\r
68                     break;\r
69                 case '\'':\r
70                     sb.append("\\\'");\r
71                     break;\r
72                 case '\0':\r
73                     sb.append("\\0");\r
74                     break;\r
75                 default:\r
76                     sb.append(c);\r
77             }\r
78         }\r
79         return sb.toString();\r
80     }\r
81 \r
82 }\r