Interface Origin

All Known Implementing Classes:
DockerComposeOrigin, PropertySourceOrigin, SystemEnvironmentOrigin, TextResourceOrigin

public interface Origin
Interface that uniquely represents the origin of an item. For example, an item loaded from a File may have an origin made up of the file name along with line/column numbers.

Implementations must provide sensible hashCode(), equals(...) and #toString() implementations.

Since:
2.0.0
Author:
Madhura Bhave, Phillip Webb
See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    static @Nullable Origin
    from(@Nullable Object source)
    Find the Origin that an object originated from.
    default @Nullable Origin
    Return the parent origin for this instance if there is one.
    static List<Origin>
    parentsFrom(@Nullable Object source)
    Find the parents of the Origin that an object originated from.
  • Method Details

    • getParent

      default @Nullable Origin getParent()
      Return the parent origin for this instance if there is one. The parent origin provides the origin of the item that created this one.
      Returns:
      the parent origin or null
      Since:
      2.4.0
      See Also:
    • from

      static @Nullable Origin from(@Nullable Object source)
      Find the Origin that an object originated from. Checks if the source object is an Origin or OriginProvider and also searches exception stacks.
      Parameters:
      source - the source object or null
      Returns:
      an Origin or null
    • parentsFrom

      static List<Origin> parentsFrom(@Nullable Object source)
      Find the parents of the Origin that an object originated from. Checks if the source object is an Origin or OriginProvider and also searches exception stacks. Provides a list of all parents up to root Origin, starting with the most immediate parent.
      Parameters:
      source - the source object or null
      Returns:
      a list of parents or an empty list if the source is null, has no origin, or no parent
      Since:
      2.4.0