Class UnreferencedShapes

java.lang.Object
software.amazon.smithy.model.neighbor.UnreferencedShapes

public final class UnreferencedShapes extends Object
Finds shapes that do not meet any of the following criteria:
  • The shape is connected to a "root" shape.
  • The shape is a trait definition or is connected to a trait definition.
  • The shape is referenced in a trait value through IdRefTrait.
  • The shape is a metadata definition or is connected to a metadata definition.

The "root" shapes defaults to all service shapes in the model. You can customize this by providing a selector that considers every matching shape a root shape. For example, a model might consider all shapes marked with a trait called "root" to be a root shape.

Prelude shapes are never considered unreferenced.

  • Constructor Details

    • UnreferencedShapes

      public UnreferencedShapes(Predicate<Shape> keepFilter, Selector rootShapeSelector)
      Parameters:
      keepFilter - Predicate that if matched keeps a shape from being unreferenced.
      rootShapeSelector - Selector that returns the root shapes to traverse from (defaults to all services).
    • UnreferencedShapes

      public UnreferencedShapes()
    • UnreferencedShapes

      public UnreferencedShapes(Selector selector)
    • UnreferencedShapes

      public UnreferencedShapes(Predicate<Shape> keepFilter)
  • Method Details

    • compute

      public Set<Shape> compute(Model model)
      Gets the set of shapes that are unreferenced.
      Parameters:
      model - Model to compute from.
      Returns:
      Returns the unreferenced shapes.