Class SmithyPattern

java.lang.Object
software.amazon.smithy.model.pattern.SmithyPattern
Direct Known Subclasses:
UriPattern

public class SmithyPattern extends Object
Represents a contained pattern.

A pattern is a series of segments, some of which may be labels.

Labels may appear in the pattern in the form of "{label}". Labels must not be repeated, must not contain other labels (e.g., "{fo{bar}oo}"), 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. Greedy labels may be disabled for a pattern as part of the builder construction.

  • Constructor Details

  • Method Details

    • getSegments

      public final List<SmithyPattern.Segment> getSegments()
      Gets all segments, in order.
      Returns:
      All segments, in order, in an unmodifiable list.
    • getLabels

      public final List<SmithyPattern.Segment> getLabels()
      Get a list of all segments that are labels.
      Returns:
      Label segments in an unmodifiable list.
    • getLabel

      public final Optional<SmithyPattern.Segment> getLabel(String name)
      Get a label by case-insensitive name.
      Parameters:
      name - Name of the label to retrieve.
      Returns:
      An optionally found label.
    • getGreedyLabel

      public final Optional<SmithyPattern.Segment> getGreedyLabel()
      Gets the greedy label of the pattern, if present.
      Returns:
      Returns the optionally found segment that is a greedy label.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object other)
      Overrides:
      equals in class Object
    • getConflictingLabelSegmentsMap

      public Map<SmithyPattern.Segment,SmithyPattern.Segment> getConflictingLabelSegmentsMap(SmithyPattern otherPattern)
      Gets a map of explicitly conflicting label segments between this pattern and another.
      Parameters:
      otherPattern - SmithyPattern to check against.
      Returns:
      A map of Segments where each pair represents a conflict and where the key is a segment from this pattern. This map is ordered so segments that appear first in this pattern appear first when iterating the map.
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • builder

      public static SmithyPattern.Builder builder()
      Returns:
      Returns a builder used to create a SmithyPattern.