Alejandro Acuña
2024-07-30 65a64a81d30f00f1fffd5da6866850e1308e1135
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package art.servers.gost.access.utils;
 
import java.util.List;
 
 
public class SQL
{
       
    
  
    public static String getWhereText(String field, String value)
    {
        if (value == null) return "";
        if (value.trim().length() == 0)  return "";
        return " AND " + field + " = '" + value + "'";
    }
 
         
    
    
    public static String getWhereLike(String field, String value)
    {
        if (value == null) return "";
        if (value.trim().length() == 0)  return "";
 
        String result = "(";
        String[] tokens = value.split("\\s*,\\s*");
        for (int i=0; i<tokens.length; i++)
        {
            String token = tokens[i];
            result = result + "(" + field + " ILIKE '" + token + "')";
            if (i < (tokens.length-1)) result = result + " OR ";
        }
 
        result = " AND " + result + ")";
        return (result);
    }
 
         
 
    public static String getWhereNumberIn(String field, String value)
    {
        if (value == null) return "";
        if (value.trim().length() == 0)  return "";
        
        String result = "(" + field + " IN (";
            
        for (String token : value.split("\\s*,\\s*"))
        {
            result = result + token + ",";
        }
 
        result = " AND " + result + "))";
        
        return replaceLast(result, ",", "");
    }
 
    
    
 
 
    public static String getWhereNumberIn(String field, List<Integer> numbers)
    {
        if (numbers == null) return "";
        if (numbers.size() == 0)  return "";
        
        String result = "(" + field + " IN (";
            
        for (Integer number : numbers)
        {
            result = result + number + ",";
        }
 
        result = " AND " + result + "))";
        
        return replaceLast(result, ",", "");
    }    
    
 
         
 
 
    
 
    public static String replaceLast(String input, String find, String replace) 
    {
        int lastIndex = input.lastIndexOf(find);
        if (lastIndex == -1)  return input;
        String beginString = input.substring(0, lastIndex);
        String endString = input.substring(lastIndex + find.length());
        return beginString + replace + endString;
    }        
    
}