1 | package org.openstreetmap.josm.tools;
|
---|
2 |
|
---|
3 | import org.openstreetmap.josm.data.osm.OsmPrimitive;
|
---|
4 |
|
---|
5 | import java.util.regex.Pattern;
|
---|
6 |
|
---|
7 | /**
|
---|
8 | * Utility class for creating {@link Predicate}s.
|
---|
9 | */
|
---|
10 | public final class Predicates {
|
---|
11 |
|
---|
12 | private Predicates() {
|
---|
13 | }
|
---|
14 |
|
---|
15 | /**
|
---|
16 | * Returns a {@link Predicate} executing {@link Pattern#matcher(CharSequence)} and {@link java.util.regex.Matcher#matches}.
|
---|
17 | */
|
---|
18 | public static Predicate<String> stringMatchesPattern(final Pattern pattern) {
|
---|
19 | return new Predicate<String>() {
|
---|
20 | @Override
|
---|
21 | public boolean evaluate(String string) {
|
---|
22 | return pattern.matcher(string).matches();
|
---|
23 | }
|
---|
24 | };
|
---|
25 | }
|
---|
26 |
|
---|
27 | /**
|
---|
28 | * Returns a {@link Predicate} executing {@link Pattern#matcher(CharSequence)} and {@link java.util.regex.Matcher#find}.
|
---|
29 | */
|
---|
30 | public static Predicate<String> stringContainsPattern(final Pattern pattern) {
|
---|
31 | return new Predicate<String>() {
|
---|
32 | @Override
|
---|
33 | public boolean evaluate(String string) {
|
---|
34 | return pattern.matcher(string).find();
|
---|
35 | }
|
---|
36 | };
|
---|
37 | }
|
---|
38 |
|
---|
39 | /**
|
---|
40 | * Returns a {@link Predicate} executing {@link String#contains(CharSequence)}.
|
---|
41 | */
|
---|
42 | public static Predicate<String> stringContains(final String pattern) {
|
---|
43 | return new Predicate<String>() {
|
---|
44 | @Override
|
---|
45 | public boolean evaluate(String string) {
|
---|
46 | return string.contains(pattern);
|
---|
47 | }
|
---|
48 | };
|
---|
49 | }
|
---|
50 |
|
---|
51 | /**
|
---|
52 | * Returns a {@link Predicate} executing {@link OsmPrimitive#hasTag(String, String...)}.
|
---|
53 | */
|
---|
54 | public static Predicate<OsmPrimitive> hasTag(final String key, final String... values) {
|
---|
55 | return new Predicate<OsmPrimitive>() {
|
---|
56 | @Override
|
---|
57 | public boolean evaluate(OsmPrimitive p) {
|
---|
58 | return p.hasTag(key, values);
|
---|
59 | }
|
---|
60 | };
|
---|
61 | }
|
---|
62 | }
|
---|