[ https://issues.apache.org/jira/browse/COMMONSRDF-7?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15615395#comment-15615395 ]
ASF subversion and git services commented on COMMONSRDF-7: ---------------------------------------------------------- Commit 797a4cd53f62585ecff7f49864f3cd75a55ba0f9 in incubator-commonsrdf's branch refs/heads/master from [~stain] [ https://git-wip-us.apache.org/repos/asf?p=incubator-commonsrdf.git;h=797a4cd ] COMMONSRDF-7 clarify immutability and hashcode > 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)