Class UriPattern
- java.lang.Object
-
- software.amazon.smithy.model.pattern.SmithyPattern
-
- software.amazon.smithy.model.pattern.UriPattern
-
public final class UriPattern extends SmithyPattern
Represents a URI pattern.A URI pattern is an absolute path segment used to route to operations. The pattern must start with "/", must not contain empty segments (i.e., "//"), must not contain a fragment (i.e., "#"), and must not end with "?".
Labels may appear in the pattern in the form of "{label}". Labels must not be repeated, must make up an entire path segment (e.g., "/{foo}/baz"), and the label name must match the regex "^[a-zA-Z0-9_]+$". No labels can appear after the query string.
Greedy labels, a specialized type of label, may be specified using "{label+}". Only a single greedy label may appear in a pattern, and it must be the last label in a pattern.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class software.amazon.smithy.model.pattern.SmithyPattern
SmithyPattern.Builder, SmithyPattern.Segment
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description boolean
conflictsWith(UriPattern otherPattern)
Determines if the pattern conflicts with another pattern.boolean
equals(java.lang.Object other)
java.util.List<Pair<SmithyPattern.Segment,SmithyPattern.Segment>>
getConflictingLabelSegments(UriPattern otherPattern)
Deprecated.java.util.Map<java.lang.String,java.lang.String>
getQueryLiterals()
Get an immutable map of query string literal key-value pairs.java.util.Optional<java.lang.String>
getQueryLiteralValue(java.lang.String parameter)
Gets a specific query string literal parameter value.int
hashCode()
static UriPattern
parse(java.lang.String uri)
Parse a URI pattern string into a UriPattern.-
Methods inherited from class software.amazon.smithy.model.pattern.SmithyPattern
builder, getConflictingLabelSegmentsMap, getGreedyLabel, getLabel, getLabels, getSegments, toString
-
-
-
-
Method Detail
-
parse
public static UriPattern parse(java.lang.String uri)
Parse a URI pattern string into a UriPattern.The provided value must match the origin-form request-target grammar production in RFC 9112, section 3.2.1.
- Parameters:
uri
- URI pattern to parse.- Returns:
- Returns the parsed URI pattern.
- Throws:
InvalidUriPatternException
- for invalid URI patterns.- See Also:
- RFC 9112 Section 3.2.1
-
getQueryLiterals
public java.util.Map<java.lang.String,java.lang.String> getQueryLiterals()
Get an immutable map of query string literal key-value pairs.- Returns:
- An immutable map of parsed query string literals.
-
getQueryLiteralValue
public java.util.Optional<java.lang.String> getQueryLiteralValue(java.lang.String parameter)
Gets a specific query string literal parameter value.- Parameters:
parameter
- Case-sensitive name of the parameter to retrieve.- Returns:
- Returns the optionally found parameter value.
-
conflictsWith
public boolean conflictsWith(UriPattern otherPattern)
Determines if the pattern conflicts with another pattern.- Parameters:
otherPattern
- SmithyPattern to check against.- Returns:
- Returns true if there is a conflict.
-
getConflictingLabelSegments
@Deprecated public java.util.List<Pair<SmithyPattern.Segment,SmithyPattern.Segment>> getConflictingLabelSegments(UriPattern otherPattern)
Deprecated.
-
equals
public boolean equals(java.lang.Object other)
- Overrides:
equals
in classSmithyPattern
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classSmithyPattern
-
-