Interface Origin

All Known Implementing Classes:
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
See Also:
  • Method Summary

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

    • getParent

      default 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 Origin from(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 optional Origin
    • parentsFrom

      static List<Origin> parentsFrom(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