/** * Checks whether a string matches a given wildcard pattern. * * @param string input string * @param pattern pattern to match * @return <code>true</code> if string matches the pattern, otherwise <code>false</code> */ public static boolean match(CharSequence string, CharSequence pattern) { return match(string, pattern, 0, 0); }
public boolean accept(String value, String rule, boolean include) { return Wildcard.matchPath(value, rule); } };
/** * Returns <code>true</code> if class or resource name matches * at least one package rule from the list. */ protected boolean isMatchingRules(String name, String... rules) { for (String rule : rules) { if (Wildcard.equalsOrMatch(name, rule)) { return true; } } return false; }
@Test void testDifferences() { assertTrue(Wildcard.match("/uphea", "*/uphea*")); assertTrue(Wildcard.match("/prj/uphea-app.jar", "*/uphea*")); assertTrue(Wildcard.matchPath("/uphea", "*/uphea*")); assertTrue(Wildcard.matchPath("prj/uphea", "*/uphea*")); assertFalse(Wildcard.matchPath("/prj/uphea-app.jar", "*/uphea*")); assertTrue(Wildcard.matchPath("/prj/uphea-app.jar", "**/uphea*")); assertTrue(Wildcard.match("/some/path/lib-jodd-v1", "*jodd*")); assertTrue(Wildcard.matchPath("/some/path/lib-jodd-v1", "**/*jodd*")); assertTrue(Wildcard.match("/some/path/lib-jodd-v1", "*/path/lib-jodd*")); assertTrue(Wildcard.matchPath("/some/path/lib-jodd-v1", "**/path/lib-jodd*")); assertTrue(Wildcard.match("/some/path/lib-jodd-v1", "*/lib-jodd*")); assertTrue(Wildcard.matchPath("/some/path/lib-jodd-v1", "**/lib-jodd*")); }
/** * Accepts if a file is going to be watched. */ protected boolean acceptFile(File file) { if (!file.isFile()) { return false; // ignore non-files } String fileName = file.getName(); if (ignoreDotFiles) { if (fileName.startsWith(StringPool.DOT)) { return false; // ignore hidden files } } if (patterns == null) { return true; } return Wildcard.matchOne(fileName, patterns) != -1; }
if (Wildcard.matchPathOne(entryName, patterns) == -1) { continue;
/** * Matches path against pattern using *, ? and ** wildcards. * Both path and the pattern are tokenized on path separators (both \ and /). * '**' represents deep tree wildcard, as in Ant. */ public static boolean matchPath(String path, String pattern) { String[] pathElements = StringUtil.splitc(path, PATH_SEPARATORS); String[] patternElements = StringUtil.splitc(pattern, PATH_SEPARATORS); return matchTokens(pathElements, patternElements); }
/** * Accepts if a file is going to be watched. */ protected boolean acceptFile(final File file) { if (!file.isFile()) { return false; // ignore non-files } String fileName = file.getName(); if (ignoreDotFiles) { if (fileName.startsWith(StringPool.DOT)) { return false; // ignore hidden files } } if (patterns == null) { return true; } return Wildcard.matchOne(fileName, patterns) != -1; }
if (Wildcard.matchPathOne(entryName, patterns) == -1) { continue;
/** * Matches path against pattern using *, ? and ** wildcards. * Both path and the pattern are tokenized on path separators (both \ and /). * '**' represents deep tree wildcard, as in Ant. */ public static boolean matchPath(final String path, final String pattern) { String[] pathElements = StringUtil.splitc(path, PATH_SEPARATORS); String[] patternElements = StringUtil.splitc(pattern, PATH_SEPARATORS); return matchTokens(pathElements, patternElements); }
public boolean accept(String value, String rule, boolean include) { return Wildcard.match(value, rule); } };
/** * Matches path to at least one pattern. * Returns index of matched pattern or <code>-1</code> otherwise. * @see #matchPath(String, String) */ public static int matchPathOne(String path, String[] patterns) { for (int i = 0; i < patterns.length; i++) { if (matchPath(path, patterns[i])) { return i; } } return -1; }
/** * Returns <code>true</code> if class or resource name matches * at least one package rule from the list. */ protected boolean isMatchingRules(final String name, final String... rules) { for (String rule : rules) { if (Wildcard.equalsOrMatch(name, rule)) { return true; } } return false; }
Wildcard.matchOne(entryMimeType, mimeTypes) : StringUtil.equalsOne(entryMimeType, mimeTypes);
result = Wildcard.matchPathOne(uri, matches) != -1; } else { for (String match : matches) { if (Wildcard.matchPathOne(uri, excludes) != -1) { result = false;
/** * Matches path against pattern using *, ? and ** wildcards. * Both path and the pattern are tokenized on path separators (both \ and /). * '**' represents deep tree wildcard, as in Ant. */ public static boolean matchPath(final String path, final String pattern) { String[] pathElements = StringUtil.splitc(path, PATH_SEPARATORS); String[] patternElements = StringUtil.splitc(pattern, PATH_SEPARATORS); return matchTokens(pathElements, patternElements); }
/** * Matches string to at least one pattern. * Returns index of matched pattern, or <code>-1</code> otherwise. * @see #match(CharSequence, CharSequence) */ public static int matchOne(String src, String[] patterns) { for (int i = 0; i < patterns.length; i++) { if (match(src, patterns[i])) { return i; } } return -1; }
/** * Matches path to at least one pattern. * Returns index of matched pattern or <code>-1</code> otherwise. * @see #matchPath(String, String) */ public static int matchPathOne(final String path, final String... patterns) { for (int i = 0; i < patterns.length; i++) { if (matchPath(path, patterns[i])) { return i; } } return -1; }
private void checkClassName(final List<String> classnameWhitelist, final String className) { if (classnameWhitelist == null) { return; } classnameWhitelist.forEach(pattern -> { if (!Wildcard.equalsOrMatch(className, pattern)) { throw new JsonException("Class can't be loaded as it is not whitelisted: " + className); } }); }
@SuppressWarnings("unchecked") protected void extractMap( final Map target, final Map<String, PropsEntry> map, final String[] profiles, final String[] wildcardPatterns, final String prefix ) { for (Map.Entry<String, PropsEntry> entry : map.entrySet()) { String key = entry.getKey(); if (wildcardPatterns != null) { if (Wildcard.matchOne(key, wildcardPatterns) == -1) { continue; } } // shorten the key if (prefix != null) { if (!key.startsWith(prefix)) { continue; } key = key.substring(prefix.length()); } // only append if target DOES NOT contain the key if (!target.containsKey(key)) { target.put(key, entry.getValue().getValue(profiles)); } } }