package org.webpieces.router.impl;
import java.util.regex.Pattern;
import org.webpieces.router.api.routing.PortType;
import org.webpieces.router.api.routing.RouteFilter;
public class FilterInfo<T> {
private String path;
private Class<? extends RouteFilter<T>> filter;
private T initialConfig;
private Pattern patternToMatch;
private PortType portType;
public FilterInfo(String path, Class<? extends RouteFilter<T>> filter, T initialConfig, PortType type) {
this.path = path;
this.patternToMatch = Pattern.compile(path);
this.filter = filter;
this.initialConfig = initialConfig;
this.portType = type;
}
public String getPath() {
return path;
}
public Class<? extends RouteFilter<T>> getFilter() {
return filter;
}
public T getInitialConfig() {
return initialConfig;
}
public Pattern getPatternToMatch() {
return patternToMatch;
}
public PortType getPortType() {
return portType;
}
public boolean securityMatch(boolean isHttps) {
if(portType == PortType.ALL_FILTER)
return true;
else if(isHttps && portType == PortType.HTTPS_FILTER)
return true;
else if(!isHttps && portType == PortType.HTTP_FILTER)
return true;
return false;
}
}