Class UriTemplateParser
- java.lang.Object
-
- org.glassfish.jersey.uri.internal.UriTemplateParser
-
- Direct Known Subclasses:
PathTemplate.PathTemplateParser
public class UriTemplateParser extends java.lang.ObjectA URI template parser that parses JAX-RS specific URI templates.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) static int[]EMPTY_INT_ARRAYprivate java.util.List<java.lang.Integer>groupCountsprivate static java.lang.String[]HEX_TO_UPPERCASE_REGEXprivate intliteralCharactersprivate java.lang.StringBufferliteralCharactersBufferprivate java.util.List<java.lang.String>namesprivate java.util.Map<java.lang.String,java.util.regex.Pattern>nameToPatternprivate java.lang.StringBuffernormalizedTemplateprivate intnumOfExplicitRegexesprivate java.util.regex.Patternpatternprivate java.lang.StringBufferregexprivate static java.util.Set<java.lang.Character>RESERVED_REGEX_CHARACTERSprivate intskipGroupprivate java.lang.Stringtemplatestatic java.util.regex.PatternTEMPLATE_VALUE_PATTERNDefault URI template value regexp pattern.
-
Constructor Summary
Constructors Constructor Description UriTemplateParser(java.lang.String template)Parse a template.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private charconsumeWhiteSpace(CharacterIterator ci)protected java.lang.StringencodeLiteralCharacters(java.lang.String characters)Encode literal characters of a template.java.util.List<java.lang.Integer>getGroupCounts()Get the capturing group counts for each template variable.int[]getGroupIndexes()Get the group indexes to capturing groups.java.util.List<java.lang.String>getNames()Get the list of template names.java.util.Map<java.lang.String,java.util.regex.Pattern>getNameToPattern()Get the map of template names to patterns.java.lang.StringgetNormalizedTemplate()Get the normalized template.intgetNumberOfExplicitRegexes()Get the number of explicit regular expressions.intgetNumberOfLiteralCharacters()Get the number of literal characters.intgetNumberOfRegexGroups()Get the number of regular expression groupsjava.util.regex.PatterngetPattern()Get the pattern.java.lang.StringgetTemplate()Get the template.private static java.lang.String[]initHexToUpperCaseRegex()private static java.util.Set<java.lang.Character>initReserved()private voidparse(CharacterIterator ci)private intparseName(CharacterIterator ci, int skipGroup)private java.lang.StringparseRegex(CharacterIterator ci)private voidprocessLiteralCharacters()
-
-
-
Field Detail
-
EMPTY_INT_ARRAY
static final int[] EMPTY_INT_ARRAY
-
RESERVED_REGEX_CHARACTERS
private static final java.util.Set<java.lang.Character> RESERVED_REGEX_CHARACTERS
-
HEX_TO_UPPERCASE_REGEX
private static final java.lang.String[] HEX_TO_UPPERCASE_REGEX
-
TEMPLATE_VALUE_PATTERN
public static final java.util.regex.Pattern TEMPLATE_VALUE_PATTERN
Default URI template value regexp pattern.
-
template
private final java.lang.String template
-
regex
private final java.lang.StringBuffer regex
-
normalizedTemplate
private final java.lang.StringBuffer normalizedTemplate
-
literalCharactersBuffer
private final java.lang.StringBuffer literalCharactersBuffer
-
pattern
private final java.util.regex.Pattern pattern
-
names
private final java.util.List<java.lang.String> names
-
groupCounts
private final java.util.List<java.lang.Integer> groupCounts
-
nameToPattern
private final java.util.Map<java.lang.String,java.util.regex.Pattern> nameToPattern
-
numOfExplicitRegexes
private int numOfExplicitRegexes
-
skipGroup
private int skipGroup
-
literalCharacters
private int literalCharacters
-
-
Constructor Detail
-
UriTemplateParser
public UriTemplateParser(java.lang.String template) throws java.lang.IllegalArgumentExceptionParse a template.- Parameters:
template- the template.- Throws:
java.lang.IllegalArgumentException- if the template is null, an empty string or does not conform to a JAX-RS URI template.
-
-
Method Detail
-
initReserved
private static java.util.Set<java.lang.Character> initReserved()
-
getTemplate
public final java.lang.String getTemplate()
Get the template.- Returns:
- the template.
-
getPattern
public final java.util.regex.Pattern getPattern()
Get the pattern.- Returns:
- the pattern.
-
getNormalizedTemplate
public final java.lang.String getNormalizedTemplate()
Get the normalized template.A normalized template is a template without any explicit regular expressions.
- Returns:
- the normalized template.
-
getNameToPattern
public final java.util.Map<java.lang.String,java.util.regex.Pattern> getNameToPattern()
Get the map of template names to patterns.- Returns:
- the map of template names to patterns.
-
getNames
public final java.util.List<java.lang.String> getNames()
Get the list of template names.- Returns:
- the list of template names.
-
getGroupCounts
public final java.util.List<java.lang.Integer> getGroupCounts()
Get the capturing group counts for each template variable.- Returns:
- the capturing group counts.
-
getGroupIndexes
public final int[] getGroupIndexes()
Get the group indexes to capturing groups.Any nested capturing groups will be ignored and the the group index will refer to the top-level capturing groups associated with the templates variables.
- Returns:
- the group indexes to capturing groups.
-
getNumberOfExplicitRegexes
public final int getNumberOfExplicitRegexes()
Get the number of explicit regular expressions.- Returns:
- the number of explicit regular expressions.
-
getNumberOfRegexGroups
public final int getNumberOfRegexGroups()
Get the number of regular expression groups- Returns:
- the number of regular expressions groups
- Since:
- 2.9
-
getNumberOfLiteralCharacters
public final int getNumberOfLiteralCharacters()
Get the number of literal characters.- Returns:
- the number of literal characters.
-
encodeLiteralCharacters
protected java.lang.String encodeLiteralCharacters(java.lang.String characters)
Encode literal characters of a template.- Parameters:
characters- the literal characters- Returns:
- the encoded literal characters.
-
parse
private void parse(CharacterIterator ci)
-
processLiteralCharacters
private void processLiteralCharacters()
-
initHexToUpperCaseRegex
private static java.lang.String[] initHexToUpperCaseRegex()
-
parseName
private int parseName(CharacterIterator ci, int skipGroup)
-
parseRegex
private java.lang.String parseRegex(CharacterIterator ci)
-
consumeWhiteSpace
private char consumeWhiteSpace(CharacterIterator ci)
-
-