Advertisement
Guest User

Untitled

a guest
Nov 20th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.57 KB | None | 0 0
  1. package eg.edu.alexu.csd.oop.db.cs24;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.regex.Matcher;
  5. import java.util.regex.Pattern;
  6.  
  7. public class ConditionParser {
  8.  
  9. private static ConditionParser cp;
  10.  
  11. Pattern mainPattern=Pattern.compile("");
  12.  
  13. private ConditionParser() {
  14.  
  15. }
  16.  
  17. public static ConditionParser getInstance() {
  18. if(cp == null) {
  19. cp = new ConditionParser();
  20. }
  21. return cp;
  22. }
  23. private boolean isCompartor(Character checked){
  24. if(checked=='>'||checked=='<'||checked=='='){return true;}
  25. else return false;
  26. }
  27. public ArrayList<String> noregexparser(String input){
  28. ArrayList<String> output = new ArrayList<String>();
  29. int i=0,istart;
  30. while(i<input.length()) {
  31. while (input.charAt(i) == ' ') {
  32. i++;
  33. }
  34. if (Character.isDigit(input.charAt(i)) || Character.isLetter(input.charAt(i))||input.charAt(i) =='\'') {
  35. istart = i;
  36. while (!isCompartor(input.charAt(i)) && input.charAt(i) != ' ') {
  37. if(input.charAt(i)=='\''){i++;
  38. while(!(input.charAt(i) =='\'')){i++;}
  39. i++;
  40. output.add(input.substring(istart,i));
  41. break;
  42. }
  43. if (i == input.length() - 1) {
  44. output.add(input.substring(istart));
  45. i++;
  46. break;
  47. }
  48. i++;
  49. }
  50. if(i<input.length()) output.add(input.substring(istart, i));
  51. } else {
  52. istart = i;
  53. while (isCompartor(input.charAt(i))) {
  54. if (i == input.length() - 1) {
  55. output.add(input.substring(istart, i));
  56. i++;
  57. break;
  58. }
  59. i++;
  60.  
  61. }
  62. if(i<input.length()) output.add(input.substring(istart, i));
  63. }
  64.  
  65. }
  66. if(conditionChecker(output))return output;
  67. return null;
  68. }
  69.  
  70. private boolean smallCondtioncheck(ArrayList<String> a){
  71. a.set(1,a.get(1).replace(" ",""));
  72. if(a.get(1).equals("<")||a.get(1).equals(">")||a.get(1).equals("=")||a.get(1).equals("<=")||a.get(1).equals(">=")){
  73. if(a.get(0)==null||a.get(2)==null){return false;}
  74. return true;
  75. }
  76. return false;
  77. }
  78. ArrayList<String> sublist(ArrayList<String> input,int start,int finish){
  79. ArrayList<String> op = new ArrayList<String>();
  80. while(start<finish){
  81. op.add(input.get(start));
  82. start++;
  83. }
  84. return op;
  85. }
  86.  
  87. boolean conditionChecker(ArrayList<String> a){
  88. if(a.size()<3)return false;
  89. int i=0;
  90. while(i<a.size()){
  91. if(!smallCondtioncheck(sublist(a,i,i+3)))return false;
  92. if(i+3<a.size()&&!a.get(i+3).equals("and")&&!a.get(i+3).equals("or")){return false;}
  93. i=i+4;
  94.  
  95. }
  96. return true;
  97.  
  98. }
  99.  
  100. public boolean evaluate(ArrayList<String> condition, ArrayList<String> reps) {
  101.  
  102. return false;
  103. }
  104.  
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement