Class UriTemplatePathSpec

    • 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
      • _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
    • Constructor Detail

      • UriTemplatePathSpec

        public UriTemplatePathSpec​(java.lang.String rawSpec)
    • 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)
      • 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: PathSpec
        The length of the spec.
        Returns:
        the length of the spec.
      • getGroup

        public PathSpecGroup getGroup()
        Description copied from interface: PathSpec
        The spec group.
        Returns:
        the spec group.
      • getPathDepth

        public int getPathDepth()
        Description copied from interface: PathSpec
        Get 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: PathSpec
        Return 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: PathSpec
        Return 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: PathSpec
        The as-provided path spec.
        Returns:
        the as-provided path spec
      • getPrefix

        public java.lang.String getPrefix()
        Description copied from interface: PathSpec
        A 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: PathSpec
        A 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: PathSpec
        Test 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: PathSpec
        Get 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()