private static IMatcher createNameMatcher0(String segment, Character pathSeparator, boolean dirOnly, boolean lastSegment) throws InvalidPatternException { // check if we see /** or ** segments => double star pattern if (WildMatcher.WILDMATCH.equals(segment) || WildMatcher.WILDMATCH2.equals(segment)) return dirOnly && lastSegment ? WILD_ONLY_DIRECTORY : WILD_NO_DIRECTORY; PatternState state = checkWildCards(segment); switch (state) { case LEADING_ASTERISK_ONLY: return new LeadingAsteriskMatcher(segment, pathSeparator, dirOnly); case TRAILING_ASTERISK_ONLY: return new TrailingAsteriskMatcher(segment, pathSeparator, dirOnly); case COMPLEX: return new WildCardMatcher(segment, pathSeparator, dirOnly); default: return new NameMatcher(segment, pathSeparator, dirOnly, true); } }
public boolean matches(String path, boolean assumeDirectory) { int end = 0; int firstChar = 0; do { firstChar = getFirstNotSlash(path, end); end = getFirstSlash(path, firstChar); boolean match = matches(path, firstChar, end, assumeDirectory); if (match) // make sure the directory matches: either if we are done with // segment and there is next one, or if the directory is assumed return !dirOnly ? true : (end > 0 && end != path.length()) || assumeDirectory; } while (!beginning && end != path.length()); return false; }
private static IMatcher createNameMatcher0(String segment, Character pathSeparator, boolean dirOnly) throws InvalidPatternException { // check if we see /** or ** segments => double star pattern if (WildMatcher.WILDMATCH.equals(segment) || WildMatcher.WILDMATCH2.equals(segment)) return WILD; PatternState state = checkWildCards(segment); switch (state) { case LEADING_ASTERISK_ONLY: return new LeadingAsteriskMatcher(segment, pathSeparator, dirOnly); case TRAILING_ASTERISK_ONLY: return new TrailingAsteriskMatcher(segment, pathSeparator, dirOnly); case COMPLEX: return new WildCardMatcher(segment, pathSeparator, dirOnly); default: return new NameMatcher(segment, pathSeparator, dirOnly, true); } }
private static IMatcher createNameMatcher0(String segment, Character pathSeparator, boolean dirOnly, boolean lastSegment) throws InvalidPatternException { // check if we see /** or ** segments => double star pattern if (WildMatcher.WILDMATCH.equals(segment) || WildMatcher.WILDMATCH2.equals(segment)) return dirOnly && lastSegment ? WILD_ONLY_DIRECTORY : WILD_NO_DIRECTORY; PatternState state = checkWildCards(segment); switch (state) { case LEADING_ASTERISK_ONLY: return new LeadingAsteriskMatcher(segment, pathSeparator, dirOnly); case TRAILING_ASTERISK_ONLY: return new TrailingAsteriskMatcher(segment, pathSeparator, dirOnly); case COMPLEX: return new WildCardMatcher(segment, pathSeparator, dirOnly); default: return new NameMatcher(segment, pathSeparator, dirOnly, true); } }
private static IMatcher createNameMatcher0(String segment, Character pathSeparator, boolean dirOnly, boolean lastSegment) throws InvalidPatternException { // check if we see /** or ** segments => double star pattern if (WildMatcher.WILDMATCH.equals(segment) || WildMatcher.WILDMATCH2.equals(segment)) return dirOnly && lastSegment ? WILD_ONLY_DIRECTORY : WILD_NO_DIRECTORY; PatternState state = checkWildCards(segment); switch (state) { case LEADING_ASTERISK_ONLY: return new LeadingAsteriskMatcher(segment, pathSeparator, dirOnly); case TRAILING_ASTERISK_ONLY: return new TrailingAsteriskMatcher(segment, pathSeparator, dirOnly); case COMPLEX: return new WildCardMatcher(segment, pathSeparator, dirOnly); default: return new NameMatcher(segment, pathSeparator, dirOnly, true); } }