Package org.eclipse.jetty.http.pathmap
Class UriTemplatePathSpec
- java.lang.Object
-
- org.eclipse.jetty.http.pathmap.AbstractPathSpec
-
- org.eclipse.jetty.http.pathmap.UriTemplatePathSpec
-
public class UriTemplatePathSpec extends AbstractPathSpec
PathSpec for URI Template based declarations- See Also:
- URI Templates (Level 1)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classUriTemplatePathSpec.UriTemplateMatchedPath
-
Field Summary
Fields Modifier and Type Field Description private java.lang.String_declarationprivate PathSpecGroup_groupprivate java.lang.String_logicalDeclarationThe logical (simplified) declarationprivate int_pathDepthprivate java.util.regex.Pattern_patternprivate int_specLengthprivate java.lang.String[]_variablesprivate static java.util.Set<java.lang.String>FORBIDDEN_SEGMENTSprivate static LoggerLOGprivate static java.util.regex.PatternVARIABLE_PATTERNprivate static java.lang.StringVARIABLE_RESERVEDReserved Symbols in URI Template variableprivate static java.lang.StringVARIABLE_SYMBOLSAllowed Symbols in a URI Template variable
-
Constructor Summary
Constructors Constructor Description UriTemplatePathSpec(java.lang.String rawSpec)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static voidassertIsValidVariableLiteral(java.lang.String variable, java.lang.String declaration)Validate variable literal name, per RFC6570, Section 2.1 LiteralsintcompareTo(PathSpec other)java.lang.StringgetDeclaration()The as-provided path spec.PathSpecGroupgetGroup()The spec group.protected java.util.regex.MatchergetMatcher(java.lang.String path)intgetPathDepth()Get the number of path elements that this path spec declares.java.lang.StringgetPathInfo(java.lang.String path)Return the portion of the path that is after the path spec.java.lang.StringgetPathMatch(java.lang.String path)Return the portion of the path that matches a path spec.java.util.Map<java.lang.String,java.lang.String>getPathParams(java.lang.String path)java.util.regex.PatterngetPattern()java.lang.StringgetPrefix()A simple prefix match for the pathspec or nullintgetSpecLength()The length of the spec.java.lang.StringgetSuffix()A simple suffix match for the pathspec or nullintgetVariableCount()java.lang.String[]getVariables()private static booleanisValidBasicLiteralCodepoint(int codepoint, java.lang.String declaration)MatchedPathmatched(java.lang.String path)Get the complete matched details of the provided path.booleanmatches(java.lang.String path)Test to see if the provided path matches this path spec-
Methods inherited from class org.eclipse.jetty.http.pathmap.AbstractPathSpec
equals, hashCode, toString
-
-
-
-
Field Detail
-
LOG
private static final Logger LOG
-
VARIABLE_PATTERN
private static final java.util.regex.Pattern VARIABLE_PATTERN
-
VARIABLE_RESERVED
private static final java.lang.String VARIABLE_RESERVED
Reserved Symbols in URI Template variable- See Also:
- Constant Field Values
-
VARIABLE_SYMBOLS
private static final java.lang.String VARIABLE_SYMBOLS
Allowed Symbols in a URI Template variable- See Also:
- Constant Field Values
-
FORBIDDEN_SEGMENTS
private static final java.util.Set<java.lang.String> FORBIDDEN_SEGMENTS
-
_declaration
private final java.lang.String _declaration
-
_group
private final PathSpecGroup _group
-
_pathDepth
private final int _pathDepth
-
_specLength
private final int _specLength
-
_pattern
private final java.util.regex.Pattern _pattern
-
_variables
private final java.lang.String[] _variables
-
_logicalDeclaration
private final java.lang.String _logicalDeclaration
The logical (simplified) declaration
-
-
Method Detail
-
assertIsValidVariableLiteral
private static void assertIsValidVariableLiteral(java.lang.String variable, java.lang.String declaration)Validate variable literal name, per RFC6570, Section 2.1 Literals
-
isValidBasicLiteralCodepoint
private static boolean isValidBasicLiteralCodepoint(int codepoint, java.lang.String declaration)
-
compareTo
public int compareTo(PathSpec other)
- Specified by:
compareToin interfacejava.lang.Comparable<PathSpec>- Overrides:
compareToin classAbstractPathSpec
-
getPathParams
public java.util.Map<java.lang.String,java.lang.String> getPathParams(java.lang.String path)
-
getMatcher
protected java.util.regex.Matcher getMatcher(java.lang.String path)
-
getSpecLength
public int getSpecLength()
Description copied from interface:PathSpecThe length of the spec.- Returns:
- the length of the spec.
-
getGroup
public PathSpecGroup getGroup()
Description copied from interface:PathSpecThe spec group.- Returns:
- the spec group.
-
getPathDepth
public int getPathDepth()
Description copied from interface:PathSpecGet the number of path elements that this path spec declares.This is used to determine longest match logic.
- Returns:
- the depth of the path segments that this spec declares
-
getPathInfo
public java.lang.String getPathInfo(java.lang.String path)
Description copied from interface:PathSpecReturn the portion of the path that is after the path spec.- Parameters:
path- the path to match against- Returns:
- the path info portion of the string
-
getPathMatch
public java.lang.String getPathMatch(java.lang.String path)
Description copied from interface:PathSpecReturn the portion of the path that matches a path spec.- Parameters:
path- the path to match against- Returns:
- the match, or null if no match at all
-
getDeclaration
public java.lang.String getDeclaration()
Description copied from interface:PathSpecThe as-provided path spec.- Returns:
- the as-provided path spec
-
getPrefix
public java.lang.String getPrefix()
Description copied from interface:PathSpecA simple prefix match for the pathspec or null- Returns:
- A simple prefix match for the pathspec or null
-
getSuffix
public java.lang.String getSuffix()
Description copied from interface:PathSpecA simple suffix match for the pathspec or null- Returns:
- A simple suffix match for the pathspec or null
-
getPattern
public java.util.regex.Pattern getPattern()
-
matches
public boolean matches(java.lang.String path)
Description copied from interface:PathSpecTest to see if the provided path matches this path spec- Parameters:
path- the path to test- Returns:
- true if the path matches this path spec, false otherwise
-
matched
public MatchedPath matched(java.lang.String path)
Description copied from interface:PathSpecGet the complete matched details of the provided path.- Parameters:
path- the path to test- Returns:
- the matched details, if a match was possible, or null if not able to be matched.
-
getVariableCount
public int getVariableCount()
-
getVariables
public java.lang.String[] getVariables()
-
-