Rev 2470 |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
/*
* Copyright (C) 2008-2012 Steve Ratcliffe
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*
* Author: Steve Ratcliffe
* Create date: 11-Nov-2008
*/
package uk.me.parabola.mkgmap.osmstyle.eval;
import java.util.regex.Pattern;
import uk.me.parabola.mkgmap.reader.osm.Element;
import static uk.me.parabola.mkgmap.osmstyle.eval.NodeType.*;
/**
* Regular expression matching.
* @author Steve Ratcliffe
*/
public class RegexOp
extends AbstractBinaryOp
{
private Pattern pattern
;
public RegexOp
() {
setType
(REGEX
);
}
public boolean eval
(Element el
) {
String tagval = first.
value(el
);
if (tagval ==
null)
return false;
return pattern.
matcher(tagval
).
matches();
}
public int priority
() {
return 10;
}
public void setSecond
(Op second
) {
assert second.
isType(VALUE
);
super.
setSecond(second
);
pattern =
Pattern.
compile(second.
getKeyValue());
}
}