Class IRI

java.lang.Object
dev.enola.data.iri.IRI
All Implemented Interfaces:
Comparable<IRI>
Direct Known Subclasses:
StringableIRI

@Immutable public abstract class IRI extends Object implements Comparable<IRI>
IRI (Internationalized Resource Identifier) at its core is basically just any object which can be identified by a typically globally (or "clearly within a specific context") unique String; see also ID.

Contrary to an URL (URI), this is not limited to "something which can be fetched". It has no explicit notion of a "protocol" (scheme) or "authority" (host) - nor path. Thus, there is also no resolve() kind of method here (if that's needed, then use URI, or Enola's own TBD class). There is therefore also no normalize() sort of method here - because that again really depends on the "protocol" (scheme).

The "internationalized" aspect here specifically refers to the fact that what toString() returns is not "encoded" in any way; it's literally just some String, which may well contain "rich" (Unicode) characters (although implementations may well limit and not permit e.g. whitespace, etc.) Implementing classes may however well choose to offer additional encoding related methods.