Class PathFinder
java.lang.Object
software.amazon.smithy.model.selector.PathFinder
Finds the possible directed relationship paths from a starting shape to
 shapes connected to the starting shape that match a selector.
 
For example, the PathFinder can answer the question of
 "Where are all of the shapes in the closure of the input of an operation
 marked with the sensitive trait?"
 
 PathFinder pathFinder = PathFinder.create(myModel);
 List<PathFinder.Path> results = pathFinder.search(myOperationInput, "[trait|sensitive]");
 PathFinder is directed, meaning it only traverses relationships
 from shapes that define a relationship to shapes that it targets. In other
 words, PathFinder will not traverse relationships from a resource to
 the resource's parent or from a member to the shape that contains it
 because those are inverted relationships.
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionstatic final classAn immutableRelationshippath from a starting shape to an end shape.
- 
Method SummaryModifier and TypeMethodDescriptionstatic PathFinderCreates aPathFinderthat uses the givenModel.createPathToInputMember(ToShapeId operationId, String memberName) Creates aPathto an operation input member if it exists.createPathToOutputMember(ToShapeId operationId, String memberName) Creates aPathto an operation output member if it exists.voidrelationshipFilter(Predicate<Relationship> predicate) Sets a predicate function to prevents traversing specific relationships.Finds all of the possible paths from the starting shape to all shapes connected to the starting shape that match the given selector.search(ToShapeId startingShape, Collection<Shape> targetShapes) Finds all of the possible paths from thestartingShapeto any of the provided shapes intargetShapes.Finds all of the possible paths from the starting shape to all shapes connected to the starting shape that match the given selector.
- 
Method Details- 
createCreates aPathFinderthat uses the givenModel.- Parameters:
- model- Model to search using a- PathFinder.
- Returns:
- Returns the crated PathFinder.
 
- 
relationshipFilterSets a predicate function to prevents traversing specific relationships.- Parameters:
- predicate- Predicate that must return true in order to continue traversing relationships.
 
- 
searchFinds all of the possible paths from the starting shape to all shapes connected to the starting shape that match the given selector.- Parameters:
- startingShape- Starting shape to find the paths from.
- targetSelector- Selector that matches shapes to find the path to.
- Returns:
- Returns the list of matching paths.
 
- 
searchFinds all of the possible paths from the starting shape to all shapes connected to the starting shape that match the given selector.- Parameters:
- startingShape- Starting shape to find the paths from.
- targetSelector- Selector that matches shapes to find the path to.
- Returns:
- Returns the list of matching paths.
 
- 
searchFinds all of the possible paths from thestartingShapeto any of the provided shapes intargetShapes.- Parameters:
- startingShape- Starting shape to find the paths from.
- targetShapes- The shapes to try to find a path to.
- Returns:
- Returns the list of matching paths.
 
- 
createPathToInputMemberCreates aPathto an operation input member if it exists.- Parameters:
- operationId- Operation to start from.
- memberName- Input member name to find in the operation input.
- Returns:
- Returns the optionally found Pathto the member.
 
- 
createPathToOutputMemberCreates aPathto an operation output member if it exists.- Parameters:
- operationId- Operation to start from.
- memberName- Output member name to find in the operation output.
- Returns:
- Returns the optionally found Pathto the member.
 
 
-