Class ChangedShape<S extends Shape>

java.lang.Object
software.amazon.smithy.diff.ChangedShape<S>
Type Parameters:
S - The type of shape. Note that this may be just Shape in the event that the shape changed classes.
All Implemented Interfaces:
FromSourceLocation

public final class ChangedShape<S extends Shape> extends Object implements FromSourceLocation
Represents a changed shape.
  • Constructor Details

    • ChangedShape

      public ChangedShape(S oldShape, S newShape)
  • Method Details

    • getOldShape

      public S getOldShape()
      Gets the old shape value.
      Returns:
      Returns the old shape.
    • getNewShape

      public S getNewShape()
      Gets the new shape value.
      Returns:
      Returns the new shape.
    • getSourceLocation

      public SourceLocation getSourceLocation()
      Description copied from interface: FromSourceLocation
      Gets the source location of a value.
      Specified by:
      getSourceLocation in interface FromSourceLocation
      Returns:
      Returns the source location of the value.
    • getShapeId

      public ShapeId getShapeId()
      Gets the shape ID of the changed shape.
      Returns:
      Return the shape ID.
    • addedTraits

      public Stream<Trait> addedTraits()
      Gets a stream of added traits.
      Returns:
      Returns the traits that were added.
    • removedTraits

      public Stream<Trait> removedTraits()
      Gets a stream of removed traits.
      Returns:
      Returns the traits that were removed.
    • changedTraits

      public Stream<Pair<Trait,Trait>> changedTraits()
      Gets a stream of changed traits.
      Returns:
      Returns the traits that were changed.
    • isTraitAdded

      public boolean isTraitAdded(ShapeId trait)
      Checks if the trait was added.
      Parameters:
      trait - Trait to check.
      Returns:
      Returns true if the trait was added.
    • isTraitRemoved

      public boolean isTraitRemoved(ShapeId trait)
      Checks if the trait was removed.
      Parameters:
      trait - Trait to check.
      Returns:
      Returns true if the trait was removed.
    • isTraitInBoth

      public boolean isTraitInBoth(ShapeId trait)
      Checks if the given trait is in the old shape and new shape.
      Parameters:
      trait - Trait to check.
      Returns:
      Returns true if the trait is in the old and new shape.
    • getChangedTrait

      public <T extends Trait> Optional<Pair<T,T>> getChangedTrait(Class<T> traitType)
      Gets a changed trait of a specific type.
      Type Parameters:
      T - Type of trait to find.
      Parameters:
      traitType - Type of trait to find.
      Returns:
      Returns the optionally found old and new typed trait values.
    • getTraitDifferences

      public Map<ShapeId,Pair<Trait,Trait>> getTraitDifferences()
      Gets the trait differences between the old and new shape.

      The returned map is a mapping of a trait name to a pair in which the left side of the pair contains the nullable old trait value, and the right side of the pair contains the nullable new trait value. The left side will be null if the trait was added, the right side will be null if the trait was removed, and both traits will be present if the trait changed.

      Returns:
      Returns a map of each changed trait name to a pair of the old and new trait values.
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object