001/* 
002 * Copyright (c) 2006-2011 Nuxeo SA (http://nuxeo.com/) and others.
003 *
004 * All rights reserved. This program and the accompanying materials
005 * are made available under the terms of the Eclipse Public License v1.0
006 * which accompanies this distribution, and is available at
007 * http://www.eclipse.org/legal/epl-v10.html
008 *
009 * Contributors:
010 *     bstefanescu
011 */
012package org.nuxeo.ecm.webengine.jaxrs.servlet.mapping;
013
014import java.util.regex.Pattern;
015
016/**
017 * @author <a href="mailto:bs@nuxeo.com">Bogdan Stefanescu</a>
018 */
019public class RegexSegmentMatcher extends SegmentMatcher {
020
021    protected final Pattern pattern;
022
023    public RegexSegmentMatcher(String regex) {
024        this(Pattern.compile(regex));
025    }
026
027    public RegexSegmentMatcher(Pattern pattern) {
028        this.pattern = pattern;
029    }
030
031    @Override
032    public boolean matches(String segment) {
033        return pattern.matcher(segment).matches();
034    }
035
036    @Override
037    public String toString() {
038        return "(" + pattern.toString() + ")";
039    }
040}