package com.chainOfResponsibility;
public interface Filter {
void doFilter(String str, FilterChain chain);
}
package com.chainOfResponsibility;
public class FilterChain {
private Filter[] filters;
private int position;
public FilterChain(Filter[] filters) {
super();
this.filters = filters;
}
public void doFilter(String str) {
if (position >= filters.length) {
System.out.println("complete:" + str);
return;
} else {
filters[position++].doFilter(str, this);
}
}
public Filter[] getFilters() {
return filters;
}
public void setFilters(Filter[] filters) {
this.filters = filters;
}
public int getPosition() {
return position;
}
public void setPosition(int position) {
this.position = position;
}
}
package com.chainOfResponsibility;
public class TrimNum implements Filter {
@Override
public void doFilter(String str, FilterChain chain) {
chain.doFilter(str.replaceAll("\\d", ""));
}
}
package com.chainOfResponsibility;
public class TrimSpaceFilter implements Filter {
@Override
public void doFilter(String str, FilterChain chain) {
if (str.trim().length() == 0) {
return;
}
chain.doFilter(str.trim());
}
}
package com.chainOfResponsibility;
public class Test {
public static void main(String[] args) {
Filter[] filters = { new TrimSpaceFilter(), new TrimNum() };
FilterChain chain = new FilterChain(filters);
chain.doFilter(" ggesgd 3r32bfbreb ");
}
}