public static List<String> fetchDatabyColumn(String str) { String[] token = str.split("[ \\s > ]"); boolean checkSyntex = false; list = new ArrayList<String>(); listError = new ArrayList<String>(); // List<Integer> ColumnIndex = new ArrayList<Integer>(); for (int i = 0; i < token.length; i++) { if (token[i].equalsIgnoreCase("from")) { count = i; checkSyntex = true; break; } } // end of for loop if (checkSyntex) { if (token[count + 1].endsWith(";")) { token[count + 1] = token[count + 1].replaceAll(";", ""); boolean fileExists = false; if (TableCreation.useDatabase == null) file = new File(dir + "/Databases Folder/nehra"); else file = new File(dir + "/Databases Folder/" + TableCreation.useDatabase); String[] files = file.list(); for (int i = 0; i < files.length; i++) { if (files[i].equalsIgnoreCase(token[count + 1] + ".csv")) fileExists = true; } // end of for loop if (fileExists) { if (TableCreation.useDatabase == null) fileName = dir + "/Databases Folder/nehra/" + token[count + 1] + ".csv"; else fileName = dir + "/Databases Folder/" + TableCreation.useDatabase + "/" + token[count + 1] + ".csv"; try { BufferedReader br = new BufferedReader(new FileReader(fileName)); int startCount = 2; String row = null; while ((row = br.readLine()) != null) { list.add(row); } br.close(); if (token[count - 1].endsWith(",")) { error = SelectTableError.errorCommaInLastClolumn(token[count - 1]); listError.add(error); return listError; } else { while (startCount < count - 1) { if ((token[startCount].endsWith(",")) == false) { error = SelectTableError.errorCommaInClolumn(token[startCount]); listError.add(error); return listError; } startCount++; } } // end of else String[] temp; startCount = 2; String columns = ""; while (startCount < count) { columns = columns.concat(token[startCount]); startCount++; } // end of while temp = columns.split(","); String column = list.get(0); token = column.split("[ ,]"); for (int i = 0; i < temp.length; i++) { boolean isColumn = false; for (int j = 0; j < token.length; j++) { if (j % 2 == 0) { if (temp[i].equalsIgnoreCase(token[j])) { // ColumnIndex.add(j/2); // System.out.print(token[j]+"\t"); isColumn = true; break; } } // end of if(j%2==0) } // end of for(j) if (isColumn == false) { error = SelectTableError.errorInClolumnName(temp[i]); listError.add(error); return listError; } } // end of for(i) /*System.out.print("\n"); for (int k = 1; k < list.size(); k++) { temp = list.get(k).split(","); for (int i = 0; i < ColumnIndex.size(); i++) { System.out.print(temp[ColumnIndex.get(i)]+"\t"); } System.out.print("\n"); }*/ return list; } catch (IOException e) { e.printStackTrace(); } } // end of if(fileExists) else { error = SelectTableError.errorInTableName(token[count + 1]); listError.add(error); return listError; } } // end of if(;) else { error = SelectTableError.errorInSemicolon(token[count + 1]); listError.add(error); return listError; } } // end of if(checkSyntex) else { error = SelectTableError.errorInFromMissing(); listError.add(error); return listError; } return null; } // end of function fetchDatabyColumn()
public static List<String> selectAllData(String str) { list = new ArrayList<String>(); String[] token = str.split("[ \\s > ]"); if (token[3].equalsIgnoreCase("from")) { if (token[4].endsWith(";") || token[5].equals(";")) { token[4] = token[4].replaceAll(";", ""); boolean fileExists = false; if (TableCreation.useDatabase == null) file = new File(dir + "/Databases Folder/nehra"); else file = new File(dir + "/Databases Folder/" + TableCreation.useDatabase); String[] files = file.list(); for (int i = 0; i < files.length; i++) { if (files[i].equalsIgnoreCase(token[4] + ".csv")) fileExists = true; } // end of for loop if (fileExists) { if (TableCreation.useDatabase == null) fileName = dir + "/Databases Folder/nehra/" + token[4] + ".csv"; else fileName = dir + "/Databases Folder/" + TableCreation.useDatabase + "/" + token[4] + ".csv"; try { BufferedReader br = new BufferedReader(new FileReader(fileName)); String lineString = null; while ((lineString = br.readLine()) != null) { list.add(lineString); } br.close(); return list; } catch (IOException e) { e.printStackTrace(); } } // end of if(fileExists) else { error = SelectTableError.errorInTableName(token[4]); list.add(error); return list; } } // end of if(;) else { //////////////////////////// where condition//////////////////////////////////// if (token[5].equalsIgnoreCase("where")) { if (TableCreation.useDatabase == null) fileName = dir + "/Databases Folder/nehra/"; else fileName = dir + "/Databases Folder/" + TableCreation.useDatabase + "/"; file = new File(fileName); String[] files = file.list(); boolean fileExists = false; for (int i = 0; i < files.length; i++) { if (files[i].equalsIgnoreCase(token[4] + ".csv")) fileExists = true; } // end of for loop if (fileExists) { // int rowCount=0; try { List<String> list1 = new ArrayList<String>(); if (TableCreation.useDatabase == null) fileName = dir + "/Databases Folder/nehra/" + token[4] + ".csv"; else fileName = dir + "/Databases Folder/" + TableCreation.useDatabase + "/" + token[4] + ".csv"; BufferedReader fileRead = new BufferedReader(new FileReader(fileName)); List<String> list = new ArrayList<String>(); String lineString = null; while ((lineString = fileRead.readLine()) != null) list.add(lineString); fileRead.close(); if (token[5].equalsIgnoreCase("where")) { String[] temp2; int count = 5; String whereCondition = ""; while (count < token.length - 1) { whereCondition = whereCondition.concat(token[count + 1]); count++; } if (whereCondition.endsWith(";")) { whereCondition = whereCondition.replaceAll(";", ""); temp2 = whereCondition.split("="); for (int i = 0; i < temp2.length; i++) { if (temp2.length < 2) { error = UpdateTableError.errorInEqualSign(temp2[i]); list1.add(error); return list1; } if (temp2.length > 2) { error = UpdateTableError.errorMissingWhereKeyword(); list1.add(error); return list1; } } } // end of if(;) else { error = UpdateTableError.errorInSemicolon(); list1.add(error); return list1; } /////////////// where condition//////////////////// String column = list.get(0); token = column.split("[ ,]"); String[] temp = whereCondition.split("="); for (int i = 0; i < temp.length; i++) { if (i % 2 == 0) { boolean isColumn = false; for (int j = 0; j < token.length; j++) { if (j % 2 == 0) { if (temp[i].equalsIgnoreCase(token[j])) { count = j; isColumn = true; break; } } // end of if(j%2==0) } // end of for(j) if (isColumn == false) { error = UpdateTableError.errorInClolumnName(temp[i]); list1.add(error); return list1; } } // end of if(i%2==0) if (i % 2 != 0) { if (token[count + 1].equals("String")) { if (temp[i].startsWith("'") && temp[i].endsWith("'")) { continue; } else { error = UpdateTableError.errorInStringValue(temp[i]); list1.add(error); return list1; } } else if (token[count + 1].equals("char")) { if (temp[i].startsWith("'") && temp[i].endsWith("'")) { continue; } else { error = UpdateTableError.errorInCharValue(temp[i]); list1.add(error); return list1; } } else if (token[count + 1].equals("int")) { if (temp[i].matches("[0-9]+")) { continue; } else { error = UpdateTableError.errorInIntValue(temp[i]); list1.add(error); return list1; } } else if (token[count + 1].equals("float")) { if (temp[i].matches("[0-9]*[.]*[0-9]*")) { continue; } else { error = UpdateTableError.errorInFloatValue(temp[i]); list1.add(error); return list1; } } else if (token[count + 1].equals("boolean")) { if (temp[i].equalsIgnoreCase("true") || temp[i].equalsIgnoreCase("false")) { continue; } else { error = UpdateTableError.errorInBooleanValue(temp[i]); list1.add(error); return list1; } } else if (token[count + 1].equals("Date")) { if (temp[i].startsWith("'") && temp[i].endsWith("'")) { temp[i] = temp[i].replaceAll("'", ""); if (temp[i].matches("[0-3][0-9][-][0-1][0-9][-][0-9][0-9]")) { continue; } else { error = UpdateTableError.errorInDateValue(temp[i]); list1.add(error); return list1; } } else { error = UpdateTableError.errorInDateValue(temp[i]); list1.add(error); return list1; } } } // end of if(i%2!0) } // end of for(i) int col = count; count = 0; token = whereCondition.split("="); if (token[1].startsWith("'") && token[1].endsWith("'")) token[1] = token[1].replaceAll("'", ""); list1.add(list.get(0)); for (int j = 1; j < list.size(); j++) { temp = list.get(j).split(","); for (int j2 = 0; j2 < temp.length; j2++) { if (temp[j2].equals(token[1])) { count++; list1.add(list.get(j)); } // end of if } // end of for(j2) } // end of for(j) } // end of if where return list1; } // end of try catch (IOException e) { e.printStackTrace(); } } // end of if(fileExists) else { error = UpdateTableError.errorTableNotExist(token[2]); list.add(error); return list; } } // end of if(where) else { error = UpdateTableError.errorMissingWhereKeyword(); list.add(error); return list; } } // end of else } // end of if from else { error = SelectTableError.errorInFrom(token[3]); list.add(error); return list; } return null; } // end of function selectAllData