X Tutup
Skip to content

Commit a381a43

Browse files
committed
Formatted Intercepting Filter source code.
1 parent d0feb3c commit a381a43

File tree

11 files changed

+158
-118
lines changed

11 files changed

+158
-118
lines changed
Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
package com.iluwatar;
2+
23
/**
34
* Concrete implementation of filter
45
* This filter is responsible for checking/filtering the input in the address field, returns null if field is empty
56
* @author joshzambales
67
*
78
*/
8-
public class AddressFilter implements Filter{
9-
public String execute(String[] request){
10-
if(request[2].equals("")){
9+
public class AddressFilter implements Filter {
10+
public String execute(String[] request) {
11+
if (request[2].equals("")) {
1112
return null;
12-
}else return request[2];
13+
} else
14+
return request[2];
1315
}
1416
}
Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
package com.iluwatar;
2-
import java.util.*;
3-
import javax.swing.*;
4-
import javax.swing.table.*;
5-
import java.awt.*;
6-
import java.awt.event.*;
2+
73
/**
84
*
95
* This is an app that checks whether the order request is valid through pre-processing done via Filters
@@ -12,7 +8,7 @@
128
*
139
*/
1410
public class App{
15-
public static void main(String[] args){
11+
public static void main(String[] args) {
1612
FilterManager filterManager = new FilterManager(new Target());
1713
filterManager.setFilter(new NameFilter());
1814
filterManager.setFilter(new ContactFilter());
@@ -24,12 +20,3 @@ public static void main(String[] args){
2420
client.setFilterManager(filterManager);
2521
}
2622
}
27-
28-
29-
30-
31-
32-
33-
34-
35-
Lines changed: 47 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,18 @@
11
package com.iluwatar;
2-
import java.util.*;
3-
import javax.swing.*;
4-
import javax.swing.table.*;
5-
import java.awt.*;
6-
import java.awt.event.*;
2+
3+
import java.awt.BorderLayout;
4+
import java.awt.GridLayout;
5+
import java.awt.event.ActionEvent;
6+
import java.awt.event.ActionListener;
7+
8+
import javax.swing.JButton;
9+
import javax.swing.JFrame;
10+
import javax.swing.JLabel;
11+
import javax.swing.JPanel;
12+
import javax.swing.JRootPane;
13+
import javax.swing.JTextArea;
14+
import javax.swing.JTextField;
15+
import javax.swing.SwingUtilities;
716

817
/**
918
* The Client class is responsible for handling the input and running them through filters inside the filterManager
@@ -13,36 +22,41 @@
1322
* @author joshzambales
1423
*
1524
*/
16-
public class Client extends JFrame{
25+
public class Client extends JFrame {
26+
27+
private static final long serialVersionUID = 1L;
28+
1729
private FilterManager filterManager;
1830
private JLabel jl;
1931
private JTextField[] jtFields;
2032
private JTextArea[] jtAreas;
2133
private JButton clearButton, processButton;
22-
public Client(){
34+
35+
public Client() {
2336
super("Client System");
2437
setDefaultCloseOperation(EXIT_ON_CLOSE);
25-
setSize(300,300);
38+
setSize(300, 300);
2639
jl = new JLabel("RUNNING...");
2740
jtFields = new JTextField[3];
28-
for(int i = 0; i < 3; i++){
41+
for (int i = 0; i < 3; i++) {
2942
jtFields[i] = new JTextField();
3043
}
3144
jtAreas = new JTextArea[2];
32-
for(int i = 0; i < 2; i++){
45+
for (int i = 0; i < 2; i++) {
3346
jtAreas[i] = new JTextArea();
3447
}
35-
clearButton = new JButton("Clear");
36-
processButton = new JButton("Process");
48+
clearButton = new JButton("Clear");
49+
processButton = new JButton("Process");
3750

3851
setup();
3952
}
40-
private void setup(){
53+
54+
private void setup() {
4155
setLayout(new BorderLayout());
4256
JPanel panel = new JPanel();
43-
add(jl,BorderLayout.SOUTH);
57+
add(jl, BorderLayout.SOUTH);
4458
add(panel, BorderLayout.CENTER);
45-
panel.setLayout(new GridLayout(6,2));
59+
panel.setLayout(new GridLayout(6, 2));
4660
panel.add(new JLabel("Name"));
4761
panel.add(jtFields[0]);
4862
panel.add(new JLabel("Contact Number"));
@@ -56,35 +70,40 @@ private void setup(){
5670
panel.add(clearButton);
5771
panel.add(processButton);
5872

59-
clearButton.addActionListener(new ActionListener(){
73+
clearButton.addActionListener(new ActionListener() {
6074
@Override
61-
public void actionPerformed(ActionEvent e){
62-
for(JTextArea i : jtAreas){
75+
public void actionPerformed(ActionEvent e) {
76+
for (JTextArea i : jtAreas) {
6377
i.setText("");
6478
}
65-
for(JTextField i : jtFields){
79+
for (JTextField i : jtFields) {
6680
i.setText("");
6781
}
6882
}
6983
});
7084

71-
processButton.addActionListener(new ActionListener(){
85+
processButton.addActionListener(new ActionListener() {
7286
@Override
73-
public void actionPerformed(ActionEvent e){
74-
String request = String.format("%s&%s&%s&%s&%s",jtFields[0].getText(),jtFields[1].getText(),jtAreas[0].getText(),jtFields[2].getText(),jtAreas[1].getText());
75-
87+
public void actionPerformed(ActionEvent e) {
88+
String request = String.format("%s&%s&%s&%s&%s",
89+
jtFields[0].getText(), jtFields[1].getText(),
90+
jtAreas[0].getText(), jtFields[2].getText(),
91+
jtAreas[1].getText());
92+
7693
jl.setText(sendRequest(request));
7794
}
7895
});
7996

80-
JRootPane rootPane = SwingUtilities.getRootPane(processButton);
97+
JRootPane rootPane = SwingUtilities.getRootPane(processButton);
8198
rootPane.setDefaultButton(processButton);
8299
setVisible(true);
83-
}
84-
public void setFilterManager(FilterManager filterManager){
100+
}
101+
102+
public void setFilterManager(FilterManager filterManager) {
85103
this.filterManager = filterManager;
86104
}
87-
public String sendRequest(String request){
105+
106+
public String sendRequest(String request) {
88107
return filterManager.filterRequest(request);
89108
}
90-
}
109+
}
Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
package com.iluwatar;
2+
23
/**
34
* Concrete implementation of filter
45
* 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)
56
* @author joshzambales
67
*
78
*/
8-
public class ContactFilter implements Filter{
9-
public String execute(String[] request){
10-
if(request[1].equals("") || request[1].matches(".*[^\\d]+.*") || request[1].length() != 11){
9+
public class ContactFilter implements Filter {
10+
public String execute(String[] request) {
11+
if (request[1].equals("") || request[1].matches(".*[^\\d]+.*")
12+
|| request[1].length() != 11) {
1113
return null;
12-
}else return request[1];
14+
} else
15+
return request[1];
1316
}
14-
}
17+
}
Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
package com.iluwatar;
2+
23
/**
34
* Concrete implementation of filter
45
*
56
* This checks for the deposit code, returns null when deposit field is empty
67
* @author joshzambales
78
*
89
*/
9-
public class DepositFilter implements Filter{
10-
public String execute(String[] request){
11-
if(request[3].equals("")){
10+
public class DepositFilter implements Filter {
11+
public String execute(String[] request) {
12+
if (request[3].equals("")) {
1213
return null;
13-
}else return request[3];
14+
} else
15+
return request[3];
1416
}
1517
}
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
package com.iluwatar;
2+
23
/**
34
* Filter interface
45
* Filters perform certain tasks prior or after execution of request by request handler.
56
* In this case, before the request is handled by the target, the request undergoes through each Filter
67
* @author joshzambales
78
*
89
*/
9-
public interface Filter{
10+
public interface Filter {
1011
public String execute(String[] request);
1112
}

intercepting-filter/src/main/java/com/iluwatar/FilterChain.java

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,49 @@
11
package com.iluwatar;
2+
23
import java.util.*;
4+
35
/**
46
* Filter Chain carries multiple filters and help to execute them in defined order on target.
57
*
68
* @author joshzambales
79
*/
8-
public class FilterChain{
10+
public class FilterChain {
911
private ArrayList<Filter> filters = new ArrayList<Filter>();
1012
private final Target target;
1113

12-
public FilterChain(Target target){
14+
public FilterChain(Target target) {
1315
this.target = target;
1416
}
15-
public void addFilter(Filter filter){
17+
18+
public void addFilter(Filter filter) {
1619
filters.add(filter);
1720
}
1821

19-
public String execute(String request){
22+
public String execute(String request) {
2023
String tempout[] = new String[filters.size()];
2124

2225
String tempin[] = request.split("&");
2326
int i = 0;
24-
try{
25-
for(Filter filter:filters){
27+
try {
28+
for (Filter filter : filters) {
2629
tempout[i] = null;
2730
tempout[i++] = filter.execute(tempin);
2831
}
29-
}catch(Exception e){
32+
} catch (Exception e) {
3033
return "NOT ENOUGHT INPUT";
3134
}
32-
33-
if(tempout[4] == null){
35+
36+
if (tempout[4] == null) {
3437
return "INVALID ORDER!";
35-
}else if(tempout[3] == null){
38+
} else if (tempout[3] == null) {
3639
return "INVALID DEPOSIT NUMBER!";
37-
}else if(tempout[2] == null){
40+
} else if (tempout[2] == null) {
3841
return "INVALID ADRDESS!";
39-
}else if(tempout[1] == null){
42+
} else if (tempout[1] == null) {
4043
return "INVALID Contact Number!";
41-
}else if(tempout[0] == null){
44+
} else if (tempout[0] == null) {
4245
return "INVALID Name!";
43-
}else{
46+
} else {
4447
target.execute(tempout);
4548
return "RUNNING...";
4649
}
Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,23 @@
1-
package com.iluwatar;
2-
import java.util.*;
3-
import javax.swing.*;
4-
import javax.swing.table.*;
5-
import java.awt.*;
6-
import java.awt.event.*;
1+
package com.iluwatar;
2+
73
/**
8-
* Filter Manager manages the filters and Filter Chain.
4+
* Filter Manager manages the filters and Filter Chain.
5+
*
96
* @author joshzambales
107
*
118
*/
12-
public class FilterManager{
9+
public class FilterManager {
1310
private FilterChain filterChain;
14-
15-
public FilterManager(Target target){
11+
12+
public FilterManager(Target target) {
1613
filterChain = new FilterChain(target);
1714
}
18-
public void setFilter(Filter filter){
15+
16+
public void setFilter(Filter filter) {
1917
filterChain.addFilter(filter);
2018
}
21-
public String filterRequest(String request){
19+
20+
public String filterRequest(String request) {
2221
return filterChain.execute(request);
2322
}
24-
}
23+
}
Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
package com.iluwatar;
2+
23
/**
3-
* Concrete implementation of filter
4-
* This filter checks if the input in the Name field is valid. (alphanumeric)
4+
* Concrete implementation of filter This filter checks if the input in the Name
5+
* field is valid. (alphanumeric)
6+
*
57
* @author joshzambales
68
*
79
*/
8-
public class NameFilter implements Filter{
9-
public String execute(String[] request){
10-
if(request[0].equals("") || request[0].matches(".*[^\\w|\\s]+.*")){
10+
public class NameFilter implements Filter {
11+
public String execute(String[] request) {
12+
if (request[0].equals("") || request[0].matches(".*[^\\w|\\s]+.*")) {
1113
return null;
12-
}else return request[0];
14+
} else
15+
return request[0];
1316
}
14-
}
17+
}
Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
package com.iluwatar;
2+
23
/**
3-
* Concrete implementation of filter
4-
* This checks for the order field, returns null when order field is empty
4+
* Concrete implementation of filter This checks for the order field, returns
5+
* null when order field is empty
56
*
67
* @author joshzambales
78
*
89
*/
9-
public class OrderFilter implements Filter{
10-
public String execute(String[] request){
11-
if(request[4].equals("")){
10+
public class OrderFilter implements Filter {
11+
public String execute(String[] request) {
12+
if (request[4].equals("")) {
1213
return null;
13-
}else return request[4];
14+
} else
15+
return request[4];
1416
}
1517
}

0 commit comments

Comments
 (0)
X Tutup