[
https://issues.apache.org/jira/browse/COMMONSRDF-7?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15611891#comment-15611891
]
ASF GitHub Bot commented on COMMONSRDF-7:
-----------------------------------------
Github user ajs6f commented on a diff in the pull request:
https://github.com/apache/incubator-commonsrdf/pull/26#discussion_r85336105
--- Diff: api/src/main/java/org/apache/commons/rdf/api/RDFTerm.java ---
@@ -37,4 +55,46 @@
*/
String ntriplesString();
+ /**
+ * Check it this RDFTerm is equal to another RDFTerm.
+ * <p>
+ * If this object is an {@link IRI}, equality is checked using
+ * {@link IRI#equals(Object)}, or if this object is a {@link BlankNode},
+ * equality is checked using {@link BlankNode#equals(Object)}, or if
this
+ * object is a {@link Literal}, equality is checked using
+ * {@link Literal#equals(Object)}.
+ * <p>
+ * Implementations MUST also override {@link #hashCode()} so that two
equal
+ * Literals produce the same hash code.
+ *
+ * @see IRI#equals(Object)
+ * @see BlankNode#equals(Object)
+ * @see Literal#equals(Object)
+ *
+ * @param other
+ * Another object
+ * @return true if other is a RDFTerm and is equal to this
+ */
+ @Override
+ public boolean equals(Object other);
+
+ /**
+ * Calculate a hash code for this RDFTerm.
+ * <p>
+ * As an {@link RDFTerm} is <em>immutable</em>, this method will always
+ * return the same hashCode over the lifetime of this object.
+ * <p>
+ * This method MUST be implemented in conjunction with
+ * {@link #equals(Object)} so that two equal RDFTerm produce the same
hash
--- End diff --
typo: `RDFTerms`
> Document that RDFTerm, Triple and Quad are immutable
> ----------------------------------------------------
>
> Key: COMMONSRDF-7
> URL: https://issues.apache.org/jira/browse/COMMONSRDF-7
> Project: Apache Commons RDF
> Issue Type: Improvement
> Components: api
> Reporter: Stian Soiland-Reyes (old)
> Assignee: Stian Soiland-Reyes
> Labels: discussion, immutable
> Fix For: 0.3.0
>
>
> From https://github.com/commons-rdf/commons-rdf/issues/57
> ansell:
> {quote}
> As mentioned in #45, should we add a contract requirement that all RDFTerm
> instances (and Triple?) be implemented as immutable objects?
> https://github.com/commons-rdf/commons-rdf/issues/45
> {quote}
> stain:
> {quote}
> +1, if we say SHOULD. But only the exposed RDFTerm++ methods need to be
> immutable - so this should probably go into each of their descriptions. So if
> I have a getDatabaseThingie() method that can be mutable.
> {quote}
> ansell:
> {quote}
> The value of stating that the objects must be immutable is decreased if it
> only applies to the results of the API methods. A useful goal would be to
> ensure that the entire object is immutable to give a guarantee about
> threadsafety, but that may be too much for all implementations to support.
> Just stating that the results of the visible API methods are immutable
> doesn't help much. It is also not likely to apply to the methods that return
> Optional, as to enable serialisation, the actual field may not be an Optional
> itself in most cases.
> {quote}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)