Formatted Intercepting Filter source code.
This commit is contained in:
@ -1,4 +1,5 @@
|
||||
package com.iluwatar;
|
||||
|
||||
/**
|
||||
* Concrete implementation of filter
|
||||
* This filter is responsible for checking/filtering the input in the address field, returns null if field is empty
|
||||
@ -9,6 +10,7 @@ public class AddressFilter implements Filter{
|
||||
public String execute(String[] request) {
|
||||
if (request[2].equals("")) {
|
||||
return null;
|
||||
}else return request[2];
|
||||
} else
|
||||
return request[2];
|
||||
}
|
||||
}
|
@ -1,9 +1,5 @@
|
||||
package com.iluwatar;
|
||||
import java.util.*;
|
||||
import javax.swing.*;
|
||||
import javax.swing.table.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
|
||||
/**
|
||||
*
|
||||
* This is an app that checks whether the order request is valid through pre-processing done via Filters
|
||||
@ -24,12 +20,3 @@ public class App{
|
||||
client.setFilterManager(filterManager);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1,9 +1,18 @@
|
||||
package com.iluwatar;
|
||||
import java.util.*;
|
||||
import javax.swing.*;
|
||||
import javax.swing.table.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.GridLayout;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JRootPane;
|
||||
import javax.swing.JTextArea;
|
||||
import javax.swing.JTextField;
|
||||
import javax.swing.SwingUtilities;
|
||||
|
||||
/**
|
||||
* The Client class is responsible for handling the input and running them through filters inside the filterManager
|
||||
@ -14,11 +23,15 @@ import java.awt.event.*;
|
||||
*
|
||||
*/
|
||||
public class Client extends JFrame {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private FilterManager filterManager;
|
||||
private JLabel jl;
|
||||
private JTextField[] jtFields;
|
||||
private JTextArea[] jtAreas;
|
||||
private JButton clearButton, processButton;
|
||||
|
||||
public Client() {
|
||||
super("Client System");
|
||||
setDefaultCloseOperation(EXIT_ON_CLOSE);
|
||||
@ -37,6 +50,7 @@ public class Client extends JFrame{
|
||||
|
||||
setup();
|
||||
}
|
||||
|
||||
private void setup() {
|
||||
setLayout(new BorderLayout());
|
||||
JPanel panel = new JPanel();
|
||||
@ -71,7 +85,10 @@ public class Client extends JFrame{
|
||||
processButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
String request = String.format("%s&%s&%s&%s&%s",jtFields[0].getText(),jtFields[1].getText(),jtAreas[0].getText(),jtFields[2].getText(),jtAreas[1].getText());
|
||||
String request = String.format("%s&%s&%s&%s&%s",
|
||||
jtFields[0].getText(), jtFields[1].getText(),
|
||||
jtAreas[0].getText(), jtFields[2].getText(),
|
||||
jtAreas[1].getText());
|
||||
|
||||
jl.setText(sendRequest(request));
|
||||
}
|
||||
@ -81,9 +98,11 @@ public class Client extends JFrame{
|
||||
rootPane.setDefaultButton(processButton);
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
public void setFilterManager(FilterManager filterManager) {
|
||||
this.filterManager = filterManager;
|
||||
}
|
||||
|
||||
public String sendRequest(String request) {
|
||||
return filterManager.filterRequest(request);
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
package com.iluwatar;
|
||||
|
||||
/**
|
||||
* Concrete implementation of filter
|
||||
* This filter checks for the contact field in which it checks if the input consist of numbers and it also checks if the input follows the length constraint (11 digits)
|
||||
@ -7,8 +8,10 @@ package com.iluwatar;
|
||||
*/
|
||||
public class ContactFilter implements Filter {
|
||||
public String execute(String[] request) {
|
||||
if(request[1].equals("") || request[1].matches(".*[^\\d]+.*") || request[1].length() != 11){
|
||||
if (request[1].equals("") || request[1].matches(".*[^\\d]+.*")
|
||||
|| request[1].length() != 11) {
|
||||
return null;
|
||||
}else return request[1];
|
||||
} else
|
||||
return request[1];
|
||||
}
|
||||
}
|
@ -1,4 +1,5 @@
|
||||
package com.iluwatar;
|
||||
|
||||
/**
|
||||
* Concrete implementation of filter
|
||||
*
|
||||
@ -10,6 +11,7 @@ public class DepositFilter implements Filter{
|
||||
public String execute(String[] request) {
|
||||
if (request[3].equals("")) {
|
||||
return null;
|
||||
}else return request[3];
|
||||
} else
|
||||
return request[3];
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
package com.iluwatar;
|
||||
|
||||
/**
|
||||
* Filter interface
|
||||
* Filters perform certain tasks prior or after execution of request by request handler.
|
||||
|
@ -1,5 +1,7 @@
|
||||
package com.iluwatar;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* Filter Chain carries multiple filters and help to execute them in defined order on target.
|
||||
*
|
||||
@ -12,6 +14,7 @@ public class FilterChain{
|
||||
public FilterChain(Target target) {
|
||||
this.target = target;
|
||||
}
|
||||
|
||||
public void addFilter(Filter filter) {
|
||||
filters.add(filter);
|
||||
}
|
||||
|
@ -1,11 +1,8 @@
|
||||
package com.iluwatar;
|
||||
import java.util.*;
|
||||
import javax.swing.*;
|
||||
import javax.swing.table.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
|
||||
/**
|
||||
* Filter Manager manages the filters and Filter Chain.
|
||||
*
|
||||
* @author joshzambales
|
||||
*
|
||||
*/
|
||||
@ -15,9 +12,11 @@ public class FilterManager{
|
||||
public FilterManager(Target target) {
|
||||
filterChain = new FilterChain(target);
|
||||
}
|
||||
|
||||
public void setFilter(Filter filter) {
|
||||
filterChain.addFilter(filter);
|
||||
}
|
||||
|
||||
public String filterRequest(String request) {
|
||||
return filterChain.execute(request);
|
||||
}
|
||||
|
@ -1,7 +1,9 @@
|
||||
package com.iluwatar;
|
||||
|
||||
/**
|
||||
* Concrete implementation of filter
|
||||
* This filter checks if the input in the Name field is valid. (alphanumeric)
|
||||
* Concrete implementation of filter This filter checks if the input in the Name
|
||||
* field is valid. (alphanumeric)
|
||||
*
|
||||
* @author joshzambales
|
||||
*
|
||||
*/
|
||||
@ -9,6 +11,7 @@ public class NameFilter implements Filter{
|
||||
public String execute(String[] request) {
|
||||
if (request[0].equals("") || request[0].matches(".*[^\\w|\\s]+.*")) {
|
||||
return null;
|
||||
}else return request[0];
|
||||
} else
|
||||
return request[0];
|
||||
}
|
||||
}
|
@ -1,7 +1,8 @@
|
||||
package com.iluwatar;
|
||||
|
||||
/**
|
||||
* Concrete implementation of filter
|
||||
* This checks for the order field, returns null when order field is empty
|
||||
* Concrete implementation of filter This checks for the order field, returns
|
||||
* null when order field is empty
|
||||
*
|
||||
* @author joshzambales
|
||||
*
|
||||
@ -10,6 +11,7 @@ public class OrderFilter implements Filter{
|
||||
public String execute(String[] request) {
|
||||
if (request[4].equals("")) {
|
||||
return null;
|
||||
}else return request[4];
|
||||
} else
|
||||
return request[4];
|
||||
}
|
||||
}
|
@ -1,9 +1,19 @@
|
||||
package com.iluwatar;
|
||||
import java.util.*;
|
||||
import javax.swing.*;
|
||||
import javax.swing.table.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JRootPane;
|
||||
import javax.swing.JScrollPane;
|
||||
import javax.swing.JTable;
|
||||
import javax.swing.SwingUtilities;
|
||||
import javax.swing.table.DefaultTableModel;
|
||||
|
||||
/**
|
||||
* This is where the requests are displayed after being validated by filters.
|
||||
*
|
||||
@ -11,19 +21,25 @@ import java.awt.event.*;
|
||||
*
|
||||
*/
|
||||
public class Target extends JFrame {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private JTable jt;
|
||||
private JScrollPane jsp;
|
||||
private DefaultTableModel dtm;
|
||||
private JButton del;
|
||||
|
||||
public Target() {
|
||||
super("Order System");
|
||||
setDefaultCloseOperation(EXIT_ON_CLOSE);
|
||||
setSize(640, 480);
|
||||
dtm = new DefaultTableModel(new Object[]{"Name", "Contact Number", "Address", "Deposit Number", "Order"},0);
|
||||
dtm = new DefaultTableModel(new Object[] { "Name", "Contact Number",
|
||||
"Address", "Deposit Number", "Order" }, 0);
|
||||
jt = new JTable(dtm);
|
||||
del = new JButton("Delete");
|
||||
setup();
|
||||
}
|
||||
|
||||
private void setup() {
|
||||
setLayout(new BorderLayout());
|
||||
JPanel bot = new JPanel();
|
||||
@ -41,15 +57,18 @@ public class Target extends JFrame{
|
||||
rootPane.setDefaultButton(del);
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
public void execute(String[] request) {
|
||||
dtm.addRow(new Object[]{request[0],request[1],request[2],request[3],request[4]});
|
||||
dtm.addRow(new Object[] { request[0], request[1], request[2],
|
||||
request[3], request[4] });
|
||||
}
|
||||
|
||||
class DListener implements ActionListener {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
int temp = jt.getSelectedRow();
|
||||
if(temp == -1) return;
|
||||
if (temp == -1)
|
||||
return;
|
||||
int temp2 = jt.getSelectedRowCount();
|
||||
for (int i = 0; i < temp2; i++) {
|
||||
dtm.removeRow(temp);
|
||||
|
Reference in New Issue
Block a user