Skip to content

Commit 8291a2e

Browse files
committed
feat: convert nosql
Signed-off-by: Otavio Santana <[email protected]>
1 parent a1da2e1 commit 8291a2e

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

jnosql-oracle-nosql/src/main/java/org/eclipse/jnosql/databases/oracle/communication/OracleNoSqlLikeConverter.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,36 @@
1414
*/
1515
package org.eclipse.jnosql.databases.oracle.communication;
1616

17+
import java.util.regex.Pattern;
18+
1719
enum OracleNoSqlLikeConverter {
20+
INSTANCE;
21+
22+
static String convert(Object value) {
23+
24+
String like = value == null ? null : value.toString();
25+
26+
if (like == null) {
27+
return "";
28+
}
29+
StringBuilder out = new StringBuilder(like.length());
30+
StringBuilder literal = new StringBuilder();
31+
32+
for (int i = 0; i < like.length(); i++) {
33+
char c = like.charAt(i);
34+
if (c == '%' || c == '_') {
35+
if (!literal.isEmpty()) {
36+
out.append(Pattern.quote(literal.toString()));
37+
literal.setLength(0);
38+
}
39+
out.append(c == '%' ? ".*" : ".");
40+
} else {
41+
literal.append(c);
42+
}
43+
}
44+
if (!literal.isEmpty()) {
45+
out.append(Pattern.quote(literal.toString()));
46+
}
47+
return out.toString();
48+
}
1849
}

0 commit comments

Comments
 (0)