Class UnreferencedShapes

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

public final class UnreferencedShapes extends Object
Finds shapes that are not connected to a "root" shape, are not trait definitions, are not referenced by trait definitions, and are not referenced in trait values through IdRefTrait.

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.