1598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford/*
2598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford * ProGuard -- shrinking, optimization, obfuscation, and preverification
3598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford *             of Java bytecode.
4598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford *
5598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu)
6598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford *
7598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford * This program is free software; you can redistribute it and/or modify it
8598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford * under the terms of the GNU General Public License as published by the Free
9598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford * Software Foundation; either version 2 of the License, or (at your option)
10598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford * any later version.
11598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford *
12598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford * This program is distributed in the hope that it will be useful, but WITHOUT
13598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford * more details.
16598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford *
17598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford * You should have received a copy of the GNU General Public License along
18598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford * with this program; if not, write to the Free Software Foundation, Inc.,
19598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford */
21598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandifordpackage proguard.util;
22598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford
23598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford/**
24598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford * This StringMatcher delegates to a another StringMatcher that can be set
25598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford * after this StringMatcher has been constructed.
26598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford *
27598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford * @author Eric Lafortune
28598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford */
29598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandifordpublic class SettableMatcher implements StringMatcher
30598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford{
31598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford    private StringMatcher matcher;
32598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford
33598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford
34598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford    public void setMatcher(StringMatcher matcher)
35598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford    {
36598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford        this.matcher = matcher;
37598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford    }
38598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford
39598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford
40598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford    // Implementations for StringMatcher.
41598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford
42598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford    public boolean matches(String string)
43598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford    {
44598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford        return matcher.matches(string);
45598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford    }
46598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford}
47598377060d7c070bfc623f1bbf577b8e47ae130fRichard Sandiford