@@ -101,9 +101,7 @@ public ServiceRequest(String service, javaxt.http.servlet.HttpServletRequest req
101
101
try {
102
102
LinkedHashMap <String , List <String >> params =
103
103
javaxt .utils .URL .parseQueryString (new String (b , "UTF-8" ));
104
- Iterator <String > it = params .keySet ().iterator ();
105
- while (it .hasNext ()){
106
- String key = it .next ();
104
+ for (String key : params .keySet ()) {
107
105
List <String > values = params .get (key );
108
106
List <String > currValues = this .parameters .get (key );
109
107
if (currValues ==null ){
@@ -935,9 +933,7 @@ public Filter getFilter(){
935
933
}
936
934
else {
937
935
LinkedHashMap <String , List <String >> map = javaxt .utils .URL .parseQueryString (str );
938
- Iterator <String > it = map .keySet ().iterator ();
939
- while (it .hasNext ()){
940
- String key = it .next ();
936
+ for (String key : map .keySet ()){
941
937
List <String > vals = map .get (key );
942
938
if (!vals .isEmpty ()) params .put (key , new javaxt .utils .Value (vals .get (0 )));
943
939
}
@@ -953,9 +949,8 @@ public Filter getFilter(){
953
949
//Create filter
954
950
filter = new Filter ();
955
951
HashSet <String > reservedKeywords = getKeywords ();
956
- Iterator <String > it = params .keySet ().iterator ();
957
- while (it .hasNext ()){
958
- String key = it .next ().trim ();
952
+ for (String key : params .keySet ()){
953
+ key = key .trim ();
959
954
if (key .isEmpty ()) continue ;
960
955
if (key .equals ("_" )) continue ;
961
956
if (reservedKeywords .contains (key .toLowerCase ())) continue ;
@@ -1509,9 +1504,7 @@ public boolean isEmpty(){
1509
1504
*/
1510
1505
public Item [] getItems (){
1511
1506
ArrayList <Item > arr = new ArrayList <>();
1512
- Iterator <String > it = items .keySet ().iterator ();
1513
- while (it .hasNext ()){
1514
- String key = it .next ();
1507
+ for (String key : items .keySet ()){
1515
1508
for (Item item : items .get (key )){
1516
1509
arr .add (item );
1517
1510
}
@@ -1704,9 +1697,7 @@ private String[] getSelectStatements(Field[] fields, HashMap<String, Object> tab
1704
1697
String col = field .getColumn ();
1705
1698
1706
1699
HashMap <String , String > fieldMap = (HashMap <String , String >) tablesAndFields .get ("fieldMap" );
1707
- Iterator <String > it = fieldMap .keySet ().iterator ();
1708
- while (it .hasNext ()){
1709
- String fieldName = it .next ();
1700
+ for (String fieldName : fieldMap .keySet ()){
1710
1701
String columnName = fieldMap .get (fieldName );
1711
1702
if (col .equalsIgnoreCase (fieldName ) || col .equalsIgnoreCase (columnName )){
1712
1703
tableName = (String ) tablesAndFields .get ("tableName" );
@@ -1788,10 +1779,8 @@ private String getWhereStatement(ArrayList<HashMap<String, Object>> tablesAndFie
1788
1779
1789
1780
1790
1781
ArrayList <String > a2 = new ArrayList <>();
1791
- Iterator <String > it = filter .items .keySet ().iterator ();
1792
- while (it .hasNext ()){
1782
+ for (String key : filter .items .keySet ()){
1793
1783
ArrayList <String > arr = new ArrayList <>();
1794
- String key = it .next ();
1795
1784
for (Filter .Item item : filter .items .get (key )){
1796
1785
String name = item .getField ();
1797
1786
String op = item .getOperation ();
@@ -1842,18 +1831,31 @@ private String getWhereStatement(ArrayList<HashMap<String, Object>> tablesAndFie
1842
1831
HashSet <String > arrayFields = (HashSet <String >) map .get ("arrayFields" );
1843
1832
1844
1833
1845
- Iterator <String > i2 = fieldMap .keySet ().iterator ();
1846
- while (i2 .hasNext ()){
1847
- String fieldName = i2 .next ();
1834
+ for (String fieldName : fieldMap .keySet ()){
1848
1835
String columnName = fieldMap .get (fieldName );
1849
1836
if (name .equalsIgnoreCase (fieldName ) || name .equalsIgnoreCase (columnName )){
1850
1837
foundField = true ;
1851
1838
1852
- //Wrap value is single quote as needed
1839
+ //Wrap value(s) in single quote as needed
1853
1840
if (v !=null && stringFields .contains (fieldName )){
1854
1841
if (!(v .startsWith ("'" ) && v .endsWith ("'" ))){
1855
1842
if (op .equals ("IN" )){
1856
- //TODO: split by commas and add quotes
1843
+
1844
+ if (v .startsWith ("(" ) && v .endsWith (")" )){
1845
+ v = v .substring (1 , v .length ()-1 );
1846
+ }
1847
+ StringBuilder str = new StringBuilder ("(" );
1848
+ String [] a = v .split ("," ); //very weak!
1849
+ for (int i =0 ; i <a .length ; i ++){
1850
+ String s = a [i ];
1851
+ if (i >0 ) str .append ("," );
1852
+ if (!(s .startsWith ("'" ) && s .endsWith ("'" ))){
1853
+ s = "'" + s .replace ("'" ,"''" ) + "'" ;
1854
+ }
1855
+ str .append (s );
1856
+ }
1857
+ str .append (")" );
1858
+ v = str .toString ();
1857
1859
}
1858
1860
else {
1859
1861
v = "'" + v .replace ("'" ,"''" ) + "'" ;
@@ -1910,10 +1912,13 @@ else if (op.equals("IN")){
1910
1912
1911
1913
break ;
1912
1914
}
1915
+
1916
+ if (foundField ) break ;
1913
1917
}
1914
- if (foundField ) break ;
1918
+
1919
+ //console.log(foundField, name, tableName);
1915
1920
}
1916
- //console.log(foundField, name, tableName);
1921
+
1917
1922
}
1918
1923
}
1919
1924
@@ -1964,7 +1969,7 @@ public String getOrderByStatement(){
1964
1969
if (!sort .isEmpty ()){
1965
1970
StringBuilder sql = new StringBuilder ();
1966
1971
sql .append (" order by " );
1967
- java . util . Iterator <String > it = sort .getKeySet ().iterator ();
1972
+ Iterator <String > it = sort .getKeySet ().iterator ();
1968
1973
while (it .hasNext ()){
1969
1974
String colName = it .next ();
1970
1975
String direction = sort .get (colName );
0 commit comments