Represents the origin (such as filename and line number) of a {@link ConfigValue} for use in error messages. Obtain the origin of a valuewith {@link ConfigValue#origin}. Exceptions may have an origin, see {@link ConfigException#origin}, but be careful because
ConfigException.origin()
may return null.
It's best to use this interface only for debugging; its accuracy is "best effort" rather than guaranteed, and a potentially-noticeable amount of memory could probably be saved if origins were not kept around, so in the future there might be some option to discard origins.
Do not implement this interface; it should only be implemented by the config library. Arbitrary implementations will not work because the library internals assume a specific concrete implementation. Also, this interface is likely to grow new methods over time, so third-party implementations will break.