package org.jboss.seam.web;
public class Pattern
{
String view;
String pattern;
ServletMapping viewMapping;
IncomingPattern inPattern;
OutgoingPattern outPattern;
public Pattern(String view, String pattern) {
this.view = view;
this.pattern = pattern;
}
// not necessarily available when pattern is created
public void setViewMapping(ServletMapping viewMapping) {
this.viewMapping = viewMapping;
}
protected IncomingPattern inPattern() {
if (inPattern == null) {
inPattern = new IncomingPattern(viewMapping, view, pattern);
}
return inPattern;
}
protected OutgoingPattern outPattern() {
if (outPattern == null) {
outPattern = new OutgoingPattern(viewMapping, view, pattern);
}
return outPattern;
}
public Rewrite matchIncoming(String path) {
return returnIfMatch(inPattern().rewrite(path));
}
public Rewrite matchOutgoing(String path) {
return returnIfMatch(outPattern().rewrite(path));
}
@Override
public String toString() {
return "Pattern(" + view + ":" + pattern + ")";
}
private Rewrite returnIfMatch(Rewrite rewrite) {
return rewrite.isMatch() ? rewrite : null;
}
}