import java.io.* ; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; import java.lang.*; public class Frame1 extends JFrame { Vector rulesContainer = new Vector(); int lineNo=0; JFileChooser chooser = new JFileChooser(); JButton cmdInsert = new JButton(); JTextField txtTerm1 = new JTextField(); JTextField txtAction = new JTextField(); JComboBox lstOperator = new JComboBox( new String [] { " < " , " > ", " == " , " >= ", " <= " , " != ", " Contains ", " !Contains " }); JComboBox lstContainsOptions = new JComboBox( new String [] { " Start " , " Any ", " End "}); JLabel jLabel1 = new JLabel(); JLabel jLabel2 = new JLabel(); JLabel jLabel3 = new JLabel(); JButton cmdClear = new JButton(); JLabel jLabel4 = new JLabel(); JLabel jLabel5 = new JLabel(); JTextField txtLineNumber = new JTextField(); JLabel jLabel6 = new JLabel(); JTextField txtTerm2 = new JTextField(); JLabel jLabel7 = new JLabel(); JButton cmdInsertAfter = new JButton(); JButton cmdAppend = new JButton(); JMenuBar mainMenu = new JMenuBar(); JMenu mnuFile = new JMenu(); JMenuItem mnuOpen = new JMenuItem(); JMenuItem mnuSave = new JMenuItem(); JMenuItem mnuClose = new JMenuItem(); JMenuItem mnuExit = new JMenuItem(); JMenu mnuEdit = new JMenu(); JMenuItem mnuCut = new JMenuItem(); JMenuItem mnuCopy = new JMenuItem(); JMenuItem mnuPaste = new JMenuItem(); JEditorPane codePanel = new JEditorPane(); JScrollPane jScrollPane1 = new JScrollPane(codePanel); JButton cmdModify = new JButton(); JButton cmdDelete = new JButton(); JButton cmdSave = new JButton(); JButton cmdCancel = new JButton(); JTextArea errorPanel = new JTextArea(); JScrollPane jScrollPane2 = new JScrollPane(errorPanel); JLabel lblError = new JLabel(); //Construct the frame public Frame1() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } //Component initialization private void jbInit() throws Exception { this.getContentPane().setLayout(null); this.setJMenuBar(mainMenu); this.setTitle("Content Switching Rules"); cmdInsert.setText("Insert Before"); cmdInsert.setBounds(new Rectangle(54, 219, 105, 30)); cmdInsert.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { cmdInsert_actionPerformed(e); } }); txtTerm1.setText("xml.purchaseamount"); txtTerm1.setBounds(new Rectangle(107, 30, 515, 22)); txtAction.setText("routeTo(server1)"); txtAction.setBounds(new Rectangle(105, 139, 403, 23)); lstOperator.setSelectedItem(this); lstOperator.setBounds(new Rectangle(106, 65, 90, 24)); lstOperator.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { lstOperator_actionPerformed(e); } }); jLabel1.setFont(new java.awt.Font("Serif", 1, 18)); jLabel1.setForeground(Color.red); jLabel1.setText("Advanced Content Switching Rules"); jLabel1.setBounds(new Rectangle(158, 0, 330, 30)); jLabel2.setText("Term1"); jLabel2.setBounds(new Rectangle(29, 29, 60, 28)); jLabel3.setText("Operator"); jLabel3.setBounds(new Rectangle(29, 70, 58, 17)); cmdClear.setText("Clear"); cmdClear.setBounds(new Rectangle(394, 218, 105, 30)); cmdClear.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { cmdClear_actionPerformed(e); } }); jLabel4.setText("Action"); jLabel4.setBounds(new Rectangle(31, 141, 39, 26)); jLabel5.setText("Line No"); jLabel5.setBounds(new Rectangle(30, 182, 54, 24)); txtLineNumber.setText("1"); txtLineNumber.setBounds(new Rectangle(105, 181, 38, 23)); txtLineNumber.addKeyListener(new java.awt.event.KeyAdapter() { public void keyPressed(KeyEvent e) { txtLineNumber_keyPressed(e); } }); jLabel6.setText("Term2"); jLabel6.setBounds(new Rectangle(30, 94, 72, 31)); txtTerm2.setText("100"); txtTerm2.setBounds(new Rectangle(106, 103, 516, 22)); codePanel.setEnabled(false); codePanel.setEditable(false); jLabel7.setText("Code"); jLabel7.setBounds(new Rectangle(3, 283, 41, 17)); cmdInsertAfter.setText("Insert After"); cmdInsertAfter.setBounds(new Rectangle(169, 219, 105, 30)); cmdInsertAfter.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { cmdInsertAfter_actionPerformed(e); } }); cmdAppend.setText("Append"); cmdAppend.setBounds(new Rectangle(282, 219, 105, 30)); cmdAppend.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { cmdAppend_actionPerformed(e); } }); mnuFile.setText("File"); mnuOpen.setText("Open"); mnuOpen.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { mnuOpen_actionPerformed(e); } }); mnuSave.setText("Save"); mnuSave.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { mnuSave_actionPerformed(e); } }); mnuClose.setText("Close"); mnuClose.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { mnuClose_actionPerformed(e); } }); mnuExit.setText("Exit"); mnuExit.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { dispose(); System.exit(0); } }); mnuEdit.setText("Edit"); mnuCut.setText("Cut"); mnuCopy.setText("Copy"); mnuPaste.setText("Paste"); cmdModify.setText("Modify"); cmdModify.setBounds(new Rectangle(53, 256, 105, 30)); cmdModify.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { cmdModify_actionPerformed(e); } }); cmdDelete.setText("Delete"); cmdDelete.setBounds(new Rectangle(168, 256, 105, 30)); cmdDelete.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { cmdDelete_actionPerformed(e); } }); cmdSave.setText("Save"); cmdSave.setBounds(new Rectangle(54, 255, 105, 30)); // cmdSave.setVisible (false); cmdSave.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { cmdSave_actionPerformed(e); } }); cmdCancel.setText("Cancel"); cmdCancel.setBounds(new Rectangle(281, 256, 105, 30)); // cmdCancel.setVisible (false); cmdCancel.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { cmdCancel_actionPerformed(e); } }); jScrollPane1.setBounds(new Rectangle(35, 300, 529, 95)); jScrollPane2.setBounds(new Rectangle(35, 415, 529, 95)); lblError.setText("Error"); lblError.setBounds(new Rectangle(2, 401, 41, 17)); errorPanel.setEnabled(false); lstContainsOptions.setBounds(new Rectangle(217, 65, 62, 24)); lstContainsOptions.setVisible (false); this.getContentPane().add(jLabel1, null); this.getContentPane().add(txtTerm1, null); this.getContentPane().add(txtTerm2, null); this.getContentPane().add(cmdInsert, null); this.getContentPane().add(jScrollPane1, null); jScrollPane1.getViewport().add(codePanel, null); this.getContentPane().add(jScrollPane2, null); this.getContentPane().add(lblError, null); this.getContentPane().add(cmdAppend, null); this.getContentPane().add(cmdClear, null); this.getContentPane().add(cmdModify, null); this.getContentPane().add(cmdDelete, null); this.getContentPane().add(cmdCancel, null); this.getContentPane().add(cmdSave, null); this.getContentPane().add(jLabel2, null); this.getContentPane().add(jLabel6, null); this.getContentPane().add(txtLineNumber, null); this.getContentPane().add(txtAction, null); this.getContentPane().add(jLabel4, null); this.getContentPane().add(jLabel5, null); this.getContentPane().add(jLabel3, null); this.getContentPane().add(jLabel7, null); this.getContentPane().add(cmdInsertAfter, null); this.getContentPane().add(lstContainsOptions, null); this.getContentPane().add(lstOperator, null); jScrollPane2.getViewport().add(errorPanel, null); mainMenu.add(mnuFile); mainMenu.add(mnuEdit); mnuFile.add(mnuOpen); mnuFile.add(mnuSave); mnuFile.add(mnuClose); mnuFile.addSeparator(); mnuFile.add(mnuExit); mnuEdit.add(mnuCut); mnuEdit.add(mnuCopy); mnuEdit.add(mnuPaste); } //Overridden so we can exit on System Close protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if(e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } } void changeButtonStatus(boolean status) { cmdInsert.setEnabled (status); cmdInsertAfter.setEnabled (status); cmdAppend.setEnabled (status); cmdClear.setEnabled (status); cmdDelete.setEnabled (status); } void cmdClear_actionPerformed(ActionEvent e) { txtAction.setText (""); txtTerm1.setText (""); txtTerm2.setText (""); txtLineNumber.setText (""); lstOperator.setSelectedIndex (0); } void cmdInsert_actionPerformed(ActionEvent e) { int lno; try { lno = new Integer( txtLineNumber.getText ().trim ()).intValue(); } catch (NumberFormatException nfe) { checkFields(); displayErrorMessage(); return; } if (lno >= rulesContainer.size ()+1) { lno = rulesContainer.size (); } else if(lno > 0) { lno = lno -1; } else lno=0; Rules rule = new Rules(txtTerm1.getText (),txtTerm2.getText (),lstOperator.getSelectedItem ().toString (),txtAction.getText ()); // System.out.println("Selected item is ?"+lstOperator.getSelectedIndex ()); if(lstOperator.getSelectedIndex () >= 6) { String containsOption=""; if (isEnclosed(rule.term2) == true) containsOption= removeEnclose (rule.term2); else containsOption= rule.term2; switch(lstContainsOptions.getSelectedIndex ()) { case 0: containsOption="^" + containsOption; break; case 1: // containsOption=txtTerm2.getText (); break; case 2: containsOption= containsOption + "$"; break; } containsOption = encloseString (containsOption); if(lstOperator.getSelectedIndex () == 6) rule = encodeToMATCH(new Rules(txtTerm1.getText (),containsOption,"==",txtAction.getText ())); else if(lstOperator.getSelectedIndex () == 7) rule = encodeToMATCH(new Rules(txtTerm1.getText (),containsOption,"!=",txtAction.getText ())); //decodeFromMATCH (rule); } // System.out.println("the contents of rule.term2 is numeric ?" + isNumeric(rule.term2)+ " value of term2 is " + rule.term2 ); if (isNumeric(rule.term2)==false) { if (isEnclosed(rule.term2) == false) rule.term2 = encloseString (rule.term2); rule = encodeToSTRCMP (rule); } int ruleNo = compareTo (rule); if ( ruleNo < 0 && (checkConflict(rule,lno) == true) && (checkFields() == true)) { errorPanel.setText (""); rulesContainer.add (lno,rule ); } else { displayErrorMessage(); return; } lstContainsOptions.setVisible (false); displayRules(); cmdClear_actionPerformed(e); } public void displayRules() { String txt = new String(); int line = 0; Rules rule; for(line =0; line= rulesContainer.size ()) lno = rulesContainer.size (); else if(lno > 0) lno = lno; else lno=0; Rules rule = new Rules(txtTerm1.getText (),txtTerm2.getText (),lstOperator.getSelectedItem ().toString (),txtAction.getText ()); if(lstOperator.getSelectedIndex ()>= 6) { String containsOption=""; if (isEnclosed(rule.term2) == true) containsOption= removeEnclose (rule.term2); else containsOption= rule.term2; switch(lstContainsOptions.getSelectedIndex ()) { case 0: containsOption="^" + containsOption; break; case 1: // containsOption=txtTerm2.getText (); break; case 2: containsOption= containsOption + "$"; break; } containsOption = encloseString (containsOption); if(lstOperator.getSelectedIndex () == 6) rule = encodeToMATCH(new Rules(txtTerm1.getText (),containsOption,"==",txtAction.getText ())); else if(lstOperator.getSelectedIndex () == 7) rule = encodeToMATCH(new Rules(txtTerm1.getText (),containsOption,"!=",txtAction.getText ())); //decodeFromMATCH (rule); } if (isNumeric(rule.term2)==false) { if (isEnclosed(rule.term2) == false) rule.term2 = encloseString (rule.term2); rule = encodeToSTRCMP (rule); } int ruleNo = compareTo (rule); if ( ruleNo < 0 && (checkConflict(rule,lno) == true) && (checkFields() == true)) { errorPanel.setText (""); rulesContainer.add (lno,rule ); } else { displayErrorMessage(); return; } lstContainsOptions.setVisible (false); displayRules(); cmdClear_actionPerformed(e); } void cmdAppend_actionPerformed(ActionEvent e) { Rules rule = new Rules(txtTerm1.getText (),txtTerm2.getText (),lstOperator.getSelectedItem ().toString (),txtAction.getText ()); if(lstOperator.getSelectedIndex ()>= 6) { String containsOption=""; if (isEnclosed(rule.term2) == true) containsOption= removeEnclose (rule.term2); else containsOption= rule.term2; switch(lstContainsOptions.getSelectedIndex ()) { case 0: containsOption="^" + containsOption; break; case 1: // containsOption=txtTerm2.getText (); break; case 2: containsOption= containsOption + "$"; break; } containsOption = encloseString (containsOption); if(lstOperator.getSelectedIndex ()== 6) rule = encodeToMATCH(new Rules(txtTerm1.getText (),containsOption,"==",txtAction.getText ())); else if(lstOperator.getSelectedIndex ()== 7) rule = encodeToMATCH(new Rules(txtTerm1.getText (),containsOption,"!=",txtAction.getText ())); //decodeFromMATCH (rule); } if (isNumeric(rule.term2)==false){ if (isEnclosed(rule.term2) == false) rule.term2 = encloseString (rule.term2); rule = encodeToSTRCMP (rule); } int ruleNo = compareTo (rule); if ( ruleNo < 0 && (checkConflict(rule,rulesContainer.size ()) == true) && (checkFields() == true)) { errorPanel.setText (""); rulesContainer.add (rulesContainer.size (),rule ); } else { displayErrorMessage(); return; } lstContainsOptions.setVisible (false); displayRules(); cmdClear_actionPerformed(e); } void mnuOpen_actionPerformed(ActionEvent e) { int state = chooser.showOpenDialog (null); File file = chooser.getSelectedFile (); if(file!= null && state == JFileChooser.APPROVE_OPTION ) { readFromFile(file.getPath ()); JOptionPane.showMessageDialog (null,file.getPath()); } else if(state == JFileChooser.CANCEL_OPTION ) { JOptionPane.showMessageDialog (null,"Canceled"); } } void mnuSave_actionPerformed(ActionEvent e) { int state = chooser.showSaveDialog (null); File file = chooser.getSelectedFile (); if(file!= null && state == JFileChooser.APPROVE_OPTION ) { JOptionPane.showMessageDialog (null,file.getPath()); writeToFile(file.getPath ()); } else if(state == JFileChooser.CANCEL_OPTION ) { JOptionPane.showMessageDialog (null,"Canceled"); } } void mnuClose_actionPerformed(ActionEvent e) { int result = JOptionPane.showConfirmDialog (null,"save Changes ?","Confirmation ",JOptionPane.YES_NO_OPTION); switch(result) { case JOptionPane.YES_OPTION : mnuSave_actionPerformed(e); JOptionPane.showMessageDialog (null,"yes selected"); break; case JOptionPane.NO_OPTION : JOptionPane.showMessageDialog (null,"no selected"); break; } cmdClear_actionPerformed(e); codePanel.setText (""); } void writeToFile(String filepath) { PrintWriter out = null; try { out = new PrintWriter(new FileWriter(filepath)); String txt = new String(); Rules rule; for(int index =0; index")) { loper = str; trm2 = st.nextToken (); trm2 = trm2.substring (0,trm2.length ()-1); } else if (str.equalsIgnoreCase ("<")){ loper = str; trm2 = st.nextToken (); trm2 = trm2.substring (0,trm2.length ()-1); } else if (str.equalsIgnoreCase (">=")){ loper = str; trm2 = st.nextToken (); trm2 = trm2.substring (0,trm2.length ()-1); } else if (str.equalsIgnoreCase ("<=")){ loper = str; trm2 = st.nextToken (); trm2 = trm2.substring (0,trm2.length ()-1); } else if (str.equalsIgnoreCase ("!=")){ loper = str; trm2 = st.nextToken (); trm2 = trm2.substring (0,trm2.length ()-1); } else if (str.equalsIgnoreCase ("==")){ loper = str; trm2 = st.nextToken (); trm2 = trm2.substring (0,trm2.length ()-1); } } System.out.println("term1 " + trm1 + " term2 " + trm2 + " loper " + loper + " action " + action); Rules rule = new Rules(trm1,trm2,loper,action) ; rulesContainer.add (rulesContainer.size (), rule); } // end of while in.close (); } catch (FileNotFoundException fnfe) { JOptionPane.showMessageDialog (null,"File Does Not Exist"); } catch(Exception e){ e.printStackTrace(); } displayRules(); } void cmdModify_actionPerformed(ActionEvent e) { // JOptionPane.showMessageDialog (null,"Modify deactivated"); String s = (String) JOptionPane.showInputDialog (null,"Select the Line Number","Modify",JOptionPane.QUESTION_MESSAGE); if (s != null) if (Integer.parseInt(s) > rulesContainer.size () || Integer.parseInt(s) < 1 ) { JOptionPane.showMessageDialog (null,"Rule with that Number does not exist"); return; } cmdModify.setVisible (false); cmdSave.setVisible (true); cmdCancel.setVisible (true); Rules rule = (Rules) rulesContainer.elementAt (Integer.parseInt(s)-1); if (findString (rule.term1,"strcmp" ) != -1) rule = decodeFromSTRCMP (rule); else if (findString (rule.term1,"match" ) != -1) { lstContainsOptions.setVisible (true); if(findCharacter (rule.term1,'$') != -1) lstContainsOptions.setSelectedIndex (2); else if(findCharacter (rule.term1,'^') != -1) lstContainsOptions.setSelectedIndex (0); else lstContainsOptions.setSelectedIndex (1); rule = decodeFromMATCH(rule); } // end of match if Constant.lineno = (Integer.parseInt(s)-1); Constant.rule = rule; rulesContainer.removeElementAt (Integer.parseInt(s)-1); txtTerm1.setText (rule.term1 ); txtTerm2.setText(rule.term2 ); txtAction.setText (rule.action ); txtLineNumber.setText (s); if ( rule.loper .equalsIgnoreCase ("<")) lstOperator.setSelectedIndex (0); else if ( rule.loper .equalsIgnoreCase (">")) lstOperator.setSelectedIndex (1); else if ( rule.loper .equalsIgnoreCase ("==")) lstOperator.setSelectedIndex (2); else if ( rule.loper .equalsIgnoreCase (">=")) lstOperator.setSelectedIndex (3); else if ( rule.loper .equalsIgnoreCase ("<=")) lstOperator.setSelectedIndex (4); else if ( rule.loper .equalsIgnoreCase ("!=")) lstOperator.setSelectedIndex (5); else if ( rule.loper .equalsIgnoreCase ("contains")) lstOperator.setSelectedIndex (6); else if ( rule.loper .equalsIgnoreCase ("!contains")) lstOperator.setSelectedIndex (7); changeButtonStatus(false); } void cmdSave_actionPerformed(ActionEvent e) { int lno; try { lno = (new Integer( txtLineNumber.getText ().trim ()).intValue()-1); if( lno > (rulesContainer.size ()+1)) lno = rulesContainer.size (); } catch (NumberFormatException nfe) { checkFields(); displayErrorMessage(); return; } Rules rule = new Rules(txtTerm1.getText (),txtTerm2.getText (),lstOperator.getSelectedItem ().toString (),txtAction.getText ()); if(lstOperator.getSelectedIndex ()>= 6) { String containsOption=""; if (isEnclosed(rule.term2) == true) containsOption= removeEnclose (rule.term2); else containsOption= rule.term2; switch(lstContainsOptions.getSelectedIndex ()) { case 0: containsOption="^" + containsOption; break; case 1: // containsOption=txtTerm2.getText (); break; case 2: containsOption= containsOption + "$"; break; } containsOption = encloseString (containsOption); if(lstOperator.getSelectedIndex () == 6) rule = encodeToMATCH(new Rules(txtTerm1.getText (),containsOption,"==",txtAction.getText ())); else if(lstOperator.getSelectedIndex () == 7) rule = encodeToMATCH(new Rules(txtTerm1.getText (),containsOption,"!=",txtAction.getText ())); //decodeFromMATCH (rule); } if (isNumeric(rule.term2)==false) { if (isEnclosed(rule.term2) == false) rule.term2 = encloseString (rule.term2); rule = encodeToSTRCMP (rule); } int ruleNo = compareTo (rule); if ( ruleNo < 0 && (checkConflict(rule,lno) == true) && (checkFields() == true)) { errorPanel.setText (""); rulesContainer.insertElementAt (rule,lno ); } else { displayErrorMessage(); return; } changeButtonStatus(true); cmdSave.setVisible (false); cmdCancel.setVisible(false); cmdModify.setVisible (true); lstContainsOptions.setVisible (false); displayRules(); cmdClear_actionPerformed(e); } void cmdDelete_actionPerformed(ActionEvent e) { String s = (String) JOptionPane.showInputDialog (null,"Select the Line Number","Modify",JOptionPane.QUESTION_MESSAGE); if (s != null) { System.out.println(" selected " + s); if (Integer.parseInt(s) > rulesContainer.size () || Integer.parseInt(s) < 1 ) JOptionPane.showMessageDialog (null,"Rule with that Number does not exist"); else { int result = JOptionPane.showConfirmDialog (null,"Are you Sure?","Confirmation ",JOptionPane.YES_NO_OPTION); switch(result) { case JOptionPane.YES_OPTION : rulesContainer.removeElementAt ((Integer.parseInt (s)-1)); displayRules(); JOptionPane.showMessageDialog (null,"yes selected"); break; case JOptionPane.NO_OPTION : JOptionPane.showMessageDialog (null,"no selected"); break; }// end of switch }// end of if } // end of if } void cmdCancel_actionPerformed(ActionEvent e) { rulesContainer.insertElementAt (Constant.rule, Constant.lineno ); changeButtonStatus(true); cmdSave.setVisible (false); cmdCancel.setVisible (false); cmdModify.setVisible (true); errorPanel.setText (""); cmdClear_actionPerformed(e); } int compareTo(Rules rule) { Rules csr; if ( rulesContainer.size () == 0 ) return -1; for(int index =0; index < rulesContainer.size (); index ++) { csr = (Rules) rulesContainer.elementAt (index); if (csr.compare(rule) == true){ Constant.errorMessage= " Possible Conflict with Rule "+(index+1)+"\nReason : Rule already exists \n" ; return index; } }// end of for return -1; } boolean checkConflict(Rules rule, int lineNo) { if ((rule.loper.equalsIgnoreCase ("!=") == false) && (rule.loper.equalsIgnoreCase("==") == false)) { Rules csr; for(int index =0; index < rulesContainer.size (); index ++) { csr = (Rules) rulesContainer.elementAt (index); if ((csr.loper.equalsIgnoreCase ("!=") == false) && (csr.loper.equalsIgnoreCase("==") == false)) if (isNumeric(csr.term2)) if ( csr.term1.equalsIgnoreCase (rule.term1) && csr.loper.equalsIgnoreCase(rule.loper)) { if (rule.loper.equalsIgnoreCase ("<")) if (Integer.parseInt(csr.term2) < Integer.parseInt(rule.term2) ) { System.out.println("entered true"); if (lineNo <=(index+1)) { Constant.errorMessage = Constant.errorMessage + " conflict with Rule " + (index+1) + "detected \n Reason : Possible Overlap of Conditions "; return false; } } else { System.out.println("entered false"); if (lineNo >= (index+1)) { Constant.errorMessage = Constant.errorMessage + " conflict with Rule " + (index+1) + "detected \n Reason : Possible Overlap of Conditions "; return false; } } if (rule.loper.equalsIgnoreCase (">")) if (Integer.parseInt(csr.term2) > Integer.parseInt(rule.term2)) { System.out.println(Integer.parseInt(csr.term2)+" < "+Integer.parseInt(rule.term2)); if ( (index+1) > lineNo) { Constant.errorMessage = Constant.errorMessage + " conflict with Rule " + (index+1) + "detected \n Reason : Possible Overlap of Conditions "; return false; } } else { if ( (index+1) <= lineNo) { Constant.errorMessage = Constant.errorMessage + " conflict with Rule " + (index+1) + "detected \n Reason : Possible Overlap of Conditions "; return false; } } // System.out.println (Integer.parseInt(csr.term2) + " > " + Integer.parseInt(rule.term2) + " && " + (index+1) + " <= " + Integer.parseInt(txtLineNumber.getText ()) ); // // if( (Integer.parseInt(csr.term2) < Integer.parseInt(rule.term2)) && ((index+1) <= Integer.parseInt(txtLineNumber.getText ()))) // errorPanel.append ("chances for possible conflict in rules detected"); } // end of if } // end of for } return true; } boolean isNumeric(String s){ byte [] sb = s.getBytes (); for(int index =0; index < s.length (); index++) { if ( !(sb[index] > 47 && sb[index] < 58)) return false; } return true; } void displayErrorMessage(){ errorPanel.setText (Constant.errorMessage ); Constant.errorMessage = ""; } boolean checkFields() { boolean flag = true; if(isEmpty(txtTerm1.getText ())) { Constant.errorMessage = Constant.errorMessage + "Term1 cannot be Empty \n"; flag = false; } if(isEmpty(txtTerm2.getText ())) { Constant.errorMessage = Constant.errorMessage + "Term2 cannot be Empty \n"; flag = false; } if(isEmpty(txtAction.getText ())) { Constant.errorMessage =Constant.errorMessage + "Action cannot be Empty \n"; flag = false; } if(isEmpty(txtLineNumber.getText ())) { Constant.errorMessage = Constant.errorMessage + "LineNumber cannot be Empty \n"; flag = false; } return flag; } void txtLineNumber_keyPressed(KeyEvent e) { if (!(e.getKeyCode () > 47 && e.getKeyCode () < 58)){ txtLineNumber.setText(""); } } public boolean isEmpty(String s) { s= s.trim (); if (s.length () == 0) return true; return false; } Rules encodeToSTRCMP(Rules rule) { rule.term1 = "strcmp(" + rule.term1+"," + rule.term2 + ")"; rule.term2="0"; return rule; } Rules encodeToMATCH(Rules rule) { System.out.println("Encode activated"); rule.term1 = "match(" + rule.term1+"," + rule.term2 + ")"; rule.term2="0"; System.out.println("term1 " + rule.term1 + " term2 " + rule.term2 + " loper " + rule.loper + " action " + rule.action ); return rule; } Rules decodeFromSTRCMP(Rules rule) { String term1,term2; int firstStart = findCharacter (rule.term1,'('); int firstEnd = findCharacter (rule.term1,','); int secondEnd = findCharacter (rule.term1,')'); term1 = rule.term1.substring (firstStart+1,firstEnd); term2 = rule.term1.substring (firstEnd+1,secondEnd); System.out.println("term1 " + term1); System.out.println("term2 " + term2); rule.term1 = term1; rule.term2 = term2; return rule; } // Rules Rules decodeFromMATCH(Rules rule) { String term1,term2; int firstStart = findCharacter (rule.term1,'('); int firstEnd = findCharacter (rule.term1,','); int secondEnd = findCharacter (rule.term1,')'); term1 = rule.term1.substring (firstStart+1,firstEnd); term2 = rule.term1.substring (firstEnd+1,secondEnd); term2 = removeEnclose (term2); if (findCharacter (term2,'$') != -1) term2 = term2.substring (0,term2.length ()-1); else if (findCharacter (term2,'^') != -1) term2 = term2.substring (1,term2.length ()); if (rule.loper .equalsIgnoreCase ("==")) rule.loper ="contains"; else if (rule.loper .equalsIgnoreCase ("!=")) rule.loper ="!contains"; System.out.println("term1 " + term1); System.out.println("term2 " + term2); rule.term1 = term1; rule.term2 = term2; return rule; } boolean isEnclosed(String s) { if(s.charAt (0)=='\"' && s.charAt (s.length ()-1) == '\"') return true; else return false; } String encloseString(String s) { return ("\"" + s +"\""); } String removeEnclose(String s) { return (s.substring (1, (s.length ()-1) )); } int findCharacter(String s,char c) { for(int index =0; index < s.length (); index++) { if(s.charAt (index)== c) return index; } return -1; } int findString(String s1,String s2) { s1 = s1.trim (); s2 = s2.trim (); for(int index1 =0, index2=0; index1 < s1.length (); index1++) { if(s1.charAt (index1) == s2.charAt (index2)) { index2++; if ( index2 == s2.length ()) { return (index1-index2+1); } } else index2=0; } return -1; } void lstOperator_actionPerformed(ActionEvent e) { if (lstOperator.getSelectedIndex () >= 6) lstContainsOptions.setVisible (true); else lstContainsOptions.setVisible (false); } }