| 1608 | 1 package goodjava.webserver.handlers; | 
|  | 2 | 
|  | 3 import java.util.regex.Pattern; | 
|  | 4 import goodjava.webserver.Handler; | 
|  | 5 import goodjava.webserver.Request; | 
|  | 6 import goodjava.webserver.Response; | 
|  | 7 | 
|  | 8 | 
|  | 9 public final class RegexHandler implements Handler { | 
|  | 10 	private final Pattern ptn; | 
|  | 11 	private final Handler ifMatch; | 
|  | 12 	private final Handler ifNotMatch; | 
|  | 13 | 
|  | 14 	public RegexHandler(Pattern ptn,Handler ifMatch,Handler ifNotMatch) { | 
|  | 15 		this.ptn = ptn; | 
|  | 16 		this.ifMatch = ifMatch; | 
|  | 17 		this.ifNotMatch = ifNotMatch; | 
|  | 18 	} | 
|  | 19 | 
|  | 20 	public RegexHandler(String ptn,Handler ifMatch,Handler ifNotMatch) { | 
|  | 21 		this(Pattern.compile(ptn),ifMatch,ifNotMatch); | 
|  | 22 	} | 
|  | 23 | 
|  | 24 	public Response handle(Request request) { | 
|  | 25 		return ptn.matcher(request.path).find() ? ifMatch.handle(request) : ifNotMatch.handle(request); | 
|  | 26 	} | 
|  | 27 } |