source: josm/trunk/src/org/openstreetmap/josm/tools/Predicates.java@ 6573

Last change on this file since 6573 was 6573, checked in by simon04, 10 years ago

fix #9043 - Validator: Verify links on highways

File size: 1.8 KB
Line 
1package org.openstreetmap.josm.tools;
2
3import org.openstreetmap.josm.data.osm.OsmPrimitive;
4
5import java.util.regex.Pattern;
6
7/**
8 * Utility class for creating {@link Predicate}s.
9 */
10public 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}
Note: See TracBrowser for help on using the repository browser.