Interface Quad

    • Method Detail

      • getGraphName

        java.util.Optional<BlankNodeOrIRI> getGraphName()
        The graph name (graph label) of this quad, if present. If Optional.isPresent(), then the Optional.get() is either a BlankNode or an IRI, indicating the graph name of this Quad. If the graph name is not present, e.g. the value is Optional.empty(), it indicates that this Quad is in the default graph.
        Specified by:
        getGraphName in interface QuadLike<BlankNodeOrIRI>
        Returns:
        If Optional.isPresent(), the graph name BlankNodeOrIRI of this quad, otherwise Optional.empty(), indicating the default graph.
        See Also:
        RDF- 1.1 Dataset
      • asTriple

        default Triple asTriple()
        Adapt this Quad to a Triple.

        The returned Triple will have equivalent values returned from the methods TripleLike.getSubject(), TripleLike.getPredicate() and TripleLike.getObject().

        The returned Triple MUST NOT be equals(Object) to this Quad, even if this quad has a default graph getGraphName() value of Optional.empty(), but MUST follow the Triple.equals(Object) semantics. This means that the following MUST be true:

         Quad q1, q2;
         if (q1.equals(q2)) {
             assert (q1.asTriple().equals(q2.asTriple()));
         } else if (q1.asTriple().equals(q2.asTriple())) {
             assert (q1.getSubject().equals(q2.getSubject()));
             assert (q1.getPredicate().equals(q2.getPredicate()));
             assert (q1.getObject().equals(q2.getObject()));
             assert (!q1.getGraphName().equals(q2.getGraphName()));
         }
         
        The default implementation of this method return a proxy Triple instance that keeps a reference to this Quad to call the underlying TripleLike methods, but supplies a Triple compatible implementation of Triple.equals(Object) and Triple.hashCode(). Implementations may override this method, e.g. for a more efficient solution.
        Returns:
        A Triple that contains the same TripleLike properties as this Quad.
      • equals

        boolean equals​(java.lang.Object other)
        Check it this Quad is equal to another Quad.

        Two Quads are equal if and only if their getGraphName(), getSubject(), getPredicate() and getObject() are equal.

        Implementations MUST also override hashCode() so that two equal Quads produce the same hash code.

        Note that a Quad MUST NOT be equal to a Triple, even if this Quad's getGraphName() is Optional.empty(). To test triple-like equivalence, callers can use:

         Quad q1;
         Triple t2;
         q1.asTriple().equals(t2));
         
        Overrides:
        equals in class java.lang.Object
        Parameters:
        other - Another object
        Returns:
        true if other is a Quad and is equal to this
        See Also:
        Object.equals(Object)
      • hashCode

        int hashCode()
        Calculate a hash code for this Quad.

        The returned hash code MUST be equal to the result of Objects.hash(Object...) with the arguments getSubject(), getPredicate(), getObject(), getGraphName().

        This method MUST be implemented in conjunction with equals(Object) so that two equal Quads produce the same hash code.

        Overrides:
        hashCode in class java.lang.Object
        Returns:
        a hash code value for this Quad.
        See Also:
        Object.hashCode(), Objects.hash(Object...)