All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.springframework.util.SimpleRouteMatcher Maven / Gradle / Ivy

There is a newer version: 6.1.6
Show newest version
/*
 * Copyright 2002-2019 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.springframework.util;

import java.util.Comparator;
import java.util.Map;

import org.springframework.lang.Nullable;

/**
 * {@code RouteMatcher} that delegates to a {@link PathMatcher}.
 *
 * 

Note: This implementation is not efficient since * {@code PathMatcher} treats paths and patterns as Strings. For more optimized * performance use the {@code PathPatternRouteMatcher} from {@code spring-web} * which enables use of parsed routes and patterns. * * @author Rossen Stoyanchev * @since 5.2 */ public class SimpleRouteMatcher implements RouteMatcher { private final PathMatcher pathMatcher; /** * Create a new {@code SimpleRouteMatcher} for the given * {@link PathMatcher} delegate. */ public SimpleRouteMatcher(PathMatcher pathMatcher) { Assert.notNull(pathMatcher, "PathMatcher is required"); this.pathMatcher = pathMatcher; } /** * Return the underlying {@link PathMatcher} delegate. */ public PathMatcher getPathMatcher() { return this.pathMatcher; } @Override public Route parseRoute(String route) { return new DefaultRoute(route); } @Override public boolean isPattern(String route) { return this.pathMatcher.isPattern(route); } @Override public String combine(String pattern1, String pattern2) { return this.pathMatcher.combine(pattern1, pattern2); } @Override public boolean match(String pattern, Route route) { return this.pathMatcher.match(pattern, route.value()); } @Override @Nullable public Map matchAndExtract(String pattern, Route route) { if (!match(pattern, route)) { return null; } return this.pathMatcher.extractUriTemplateVariables(pattern, route.value()); } @Override public Comparator getPatternComparator(Route route) { return this.pathMatcher.getPatternComparator(route.value()); } private static class DefaultRoute implements Route { private final String path; DefaultRoute(String path) { this.path = path; } @Override public String value() { return this.path; } @Override public String toString() { return value(); } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy