You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commonsrdf.apache.org by st...@apache.org on 2015/08/10 12:31:22 UTC

[1/5] incubator-commonsrdf git commit: COMMONSRDF-14 specify hashCode

Repository: incubator-commonsrdf
Updated Branches:
  refs/heads/master 3b0028621 -> 9c441e2c2


COMMONSRDF-14 specify hashCode


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/1a1bc326
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/1a1bc326
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/1a1bc326

Branch: refs/heads/master
Commit: 1a1bc326c9232b6d560c14d43c5e05a1e1e640b9
Parents: d44aee6
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Wed May 6 22:49:29 2015 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Tue May 12 10:05:09 2015 +0100

----------------------------------------------------------------------
 .../java/org/apache/commons/rdf/api/BlankNode.java     |  4 ++++
 api/src/main/java/org/apache/commons/rdf/api/IRI.java  |  7 ++++++-
 .../main/java/org/apache/commons/rdf/api/Literal.java  | 11 +++++++++--
 .../main/java/org/apache/commons/rdf/api/Triple.java   | 13 ++++++++++---
 4 files changed, 29 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/1a1bc326/api/src/main/java/org/apache/commons/rdf/api/BlankNode.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/BlankNode.java b/api/src/main/java/org/apache/commons/rdf/api/BlankNode.java
index 52275ad..80ee79e 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/BlankNode.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/BlankNode.java
@@ -101,6 +101,10 @@ public interface BlankNode extends BlankNodeOrIRI {
 
     /**
      * Calculate a hash code for this BlankNode.
+     * <p>
+     * The returned hash code MUST be equal to the
+     * {@link String#hashCode()} of the
+     * {@link #uniqueReference()}.
      *
      * This method MUST be implemented in conjunction with
      * {@link #equals(Object)} so that two equal BlankNodes produce the same

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/1a1bc326/api/src/main/java/org/apache/commons/rdf/api/IRI.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/IRI.java b/api/src/main/java/org/apache/commons/rdf/api/IRI.java
index 20ed071..117598e 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/IRI.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/IRI.java
@@ -60,8 +60,13 @@ public interface IRI extends BlankNodeOrIRI {
 
     /**
      * Calculate a hash code for this IRI.
+     * <p>
+     * The returned hash code MUST be equal to the
+     * {@link String#hashCode()} of the
+     * {@link #getIRIString()}.
      *
-     * This method MUST be implemented when implementing {@link #equals(Object)}
+     * This method MUST be implemented in conjunction with
+     * {@link #equals(Object)}
      * so that two equal IRIs produce the same hash code.
      *
      * @return a hash code value for this IRI.

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/1a1bc326/api/src/main/java/org/apache/commons/rdf/api/Literal.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/Literal.java b/api/src/main/java/org/apache/commons/rdf/api/Literal.java
index 8e22acb..970e9de 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/Literal.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/Literal.java
@@ -18,6 +18,7 @@
 package org.apache.commons.rdf.api;
 
 import java.io.Serializable;
+import java.util.Objects;
 import java.util.Optional;
 
 /**
@@ -106,12 +107,18 @@ public interface Literal extends RDFTerm {
 
     /**
      * Calculate a hash code for this Literal.
-     *
-     * This method MUST be implemented when implementing {@link #equals(Object)}
+     * <p>
+     * The returned hash code MUST be equal to the result
+     * of {@link Objects#hash(Object...)} with
+     * the arguments
+     * {@link #getLexicalForm()}, {@link #getDatatype()}, {@link #getLanguageTag()}.
+     * <p>
+     * This method MUST be implemented in conjunction with {@link #equals(Object)}
      * so that two equal Literals produce the same hash code.
      *
      * @return a hash code value for this Literal.
      * @see Object#hashCode()
+     * @see Objects#hash(Object...)
      */
     @Override
     public int hashCode();

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/1a1bc326/api/src/main/java/org/apache/commons/rdf/api/Triple.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/Triple.java b/api/src/main/java/org/apache/commons/rdf/api/Triple.java
index f7dcd39..34ea7a3 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/Triple.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/Triple.java
@@ -17,6 +17,8 @@
  */
 package org.apache.commons.rdf.api;
 
+import java.util.Objects;
+
 /**
  * An <a href= "http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple" >RDF-1.1
  * Triple</a>, as defined by <a href= "http://www.w3.org/TR/rdf11-concepts/"
@@ -85,12 +87,17 @@ public interface Triple {
     /**
      * Calculate a hash code for this Triple.
      * <p>
-     * This method MUST be implemented when implementing {@link #equals(Object)}
-     * so that two equal IRIs produce the same hash code.
-     * </p>
+     * The returned hash code MUST be equal to the result
+     * of {@link Objects#hash(Object...)} with
+     * the arguments
+     * {@link #getSubject()}, {@link #getPredicate()}, {@link #getObject()}.
+     * <p>
+     * This method MUST be implemented in conjunction with {@link #equals(Object)}
+     * so that two equal {@link Triple}s produce the same hash code.
      *
      * @return a hash code value for this Triple.
      * @see Object#hashCode()
+     * @see Objects#hash(Object...)
      */
     @Override
     public int hashCode();


[4/5] incubator-commonsrdf git commit: COMMONSRDF-14 Javadoc formatting

Posted by st...@apache.org.
COMMONSRDF-14 Javadoc formatting


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/e0d8b5c6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/e0d8b5c6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/e0d8b5c6

Branch: refs/heads/master
Commit: e0d8b5c6187d509004aa3be3865a0a3f2790d0cb
Parents: 24da09e
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Tue May 12 10:16:42 2015 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Tue May 12 10:16:42 2015 +0100

----------------------------------------------------------------------
 api/src/main/java/org/apache/commons/rdf/api/BlankNode.java | 2 +-
 api/src/main/java/org/apache/commons/rdf/api/IRI.java       | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/e0d8b5c6/api/src/main/java/org/apache/commons/rdf/api/BlankNode.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/BlankNode.java b/api/src/main/java/org/apache/commons/rdf/api/BlankNode.java
index 80ee79e..36cdcf1 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/BlankNode.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/BlankNode.java
@@ -105,7 +105,7 @@ public interface BlankNode extends BlankNodeOrIRI {
      * The returned hash code MUST be equal to the
      * {@link String#hashCode()} of the
      * {@link #uniqueReference()}.
-     *
+     * <p>
      * This method MUST be implemented in conjunction with
      * {@link #equals(Object)} so that two equal BlankNodes produce the same
      * hash code.

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/e0d8b5c6/api/src/main/java/org/apache/commons/rdf/api/IRI.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/IRI.java b/api/src/main/java/org/apache/commons/rdf/api/IRI.java
index 117598e..c64c7b5 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/IRI.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/IRI.java
@@ -64,7 +64,7 @@ public interface IRI extends BlankNodeOrIRI {
      * The returned hash code MUST be equal to the
      * {@link String#hashCode()} of the
      * {@link #getIRIString()}.
-     *
+     * <p>
      * This method MUST be implemented in conjunction with
      * {@link #equals(Object)}
      * so that two equal IRIs produce the same hash code.


[3/5] incubator-commonsrdf git commit: COMMONSRDF-14 Update simple for hashCode definition

Posted by st...@apache.org.
COMMONSRDF-14 Update simple for hashCode definition


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/24da09e9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/24da09e9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/24da09e9

Branch: refs/heads/master
Commit: 24da09e94a24081478eef19969a4c4be2f7ad66b
Parents: 26da408
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Tue May 12 10:06:43 2015 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Tue May 12 10:06:43 2015 +0100

----------------------------------------------------------------------
 .../main/java/org/apache/commons/rdf/simple/LiteralImpl.java | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/24da09e9/simple/src/main/java/org/apache/commons/rdf/simple/LiteralImpl.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/LiteralImpl.java b/simple/src/main/java/org/apache/commons/rdf/simple/LiteralImpl.java
index aafc41d..7a7ed96 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/LiteralImpl.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/LiteralImpl.java
@@ -17,14 +17,14 @@
  */
 package org.apache.commons.rdf.simple;
 
-import org.apache.commons.rdf.api.IRI;
-import org.apache.commons.rdf.api.Literal;
-
 import java.util.IllformedLocaleException;
 import java.util.Locale;
 import java.util.Objects;
 import java.util.Optional;
 
+import org.apache.commons.rdf.api.IRI;
+import org.apache.commons.rdf.api.Literal;
+
 /**
  * A simple implementation of Literal.
  */
@@ -117,7 +117,7 @@ final class LiteralImpl implements Literal {
 
     @Override
     public int hashCode() {
-        return Objects.hash(dataType, lexicalForm, languageTag);
+        return Objects.hash(lexicalForm, dataType, languageTag);
     }
 
     @Override


[5/5] incubator-commonsrdf git commit: Merge remote-tracking branch 'remotes/stain/COMMONSRDF-14-hashCode'

Posted by st...@apache.org.
Merge remote-tracking branch 'remotes/stain/COMMONSRDF-14-hashCode'

Define explicit hashCode()

This fixes COMMONSRDF-14

This closes #13


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/9c441e2c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/9c441e2c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/9c441e2c

Branch: refs/heads/master
Commit: 9c441e2c2f06bb8744f05a0ccc305f384f187128
Parents: 3b00286 e0d8b5c
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Mon Aug 10 11:29:59 2015 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Mon Aug 10 11:29:59 2015 +0100

----------------------------------------------------------------------
 .../org/apache/commons/rdf/api/BlankNode.java   |  6 +-
 .../java/org/apache/commons/rdf/api/IRI.java    |  9 ++-
 .../org/apache/commons/rdf/api/Literal.java     | 11 +++-
 .../java/org/apache/commons/rdf/api/Triple.java | 13 +++-
 .../rdf/api/AbstractRDFTermFactoryTest.java     | 67 ++++++++++++++++++++
 .../apache/commons/rdf/simple/LiteralImpl.java  |  8 +--
 6 files changed, 102 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/9c441e2c/api/src/main/java/org/apache/commons/rdf/api/BlankNode.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/9c441e2c/api/src/main/java/org/apache/commons/rdf/api/IRI.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/9c441e2c/api/src/main/java/org/apache/commons/rdf/api/Literal.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/9c441e2c/api/src/main/java/org/apache/commons/rdf/api/Triple.java
----------------------------------------------------------------------


[2/5] incubator-commonsrdf git commit: COMMONSRDF-14 Tests for hashCode requirements

Posted by st...@apache.org.
COMMONSRDF-14 Tests for hashCode requirements


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/26da4085
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/26da4085
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/26da4085

Branch: refs/heads/master
Commit: 26da40856a86f6fdb511fdc0290b11c24518b704
Parents: 1a1bc32
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Tue May 12 10:06:29 2015 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Tue May 12 10:06:29 2015 +0100

----------------------------------------------------------------------
 .../rdf/api/AbstractRDFTermFactoryTest.java     | 67 ++++++++++++++++++++
 1 file changed, 67 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/26da4085/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java b/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java
index e4561c4..1c62161 100644
--- a/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java
+++ b/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java
@@ -22,6 +22,8 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertNotSame;
 
+import java.util.Objects;
+
 import org.junit.Assume;
 import org.junit.Before;
 import org.junit.Test;
@@ -406,4 +408,69 @@ public abstract class AbstractRDFTermFactoryTest {
         factory.createTriple(subject, (IRI) predicate, object);
     }
 
+    @Test
+    public void hashCodeBlankNode() throws Exception {
+        BlankNode bnode1;
+        try {
+            bnode1 = factory.createBlankNode();
+        } catch (UnsupportedOperationException ex) {
+            Assume.assumeNoException(
+                    "createBlankNode() not supported", ex);
+            return;
+        }
+        assertEquals(bnode1.uniqueReference().hashCode(), bnode1.hashCode());
+    }
+
+    @Test
+    public void hashCodeIRI() throws Exception {
+        IRI iri;
+        try {
+            iri = factory.createIRI("http://example.com/");
+        } catch (UnsupportedOperationException ex) {
+            Assume.assumeNoException(
+                    "createIRI(String) not supported", ex);
+            return;
+        }
+        assertEquals(iri.getIRIString().hashCode(), iri.hashCode());
+    }
+
+    @Test
+    public void hashCodeLiteral() throws Exception {
+        Literal literal;
+        try {
+            literal = factory.createLiteral("Hello");
+        } catch (UnsupportedOperationException ex) {
+            Assume.assumeNoException(
+                    "createLiteral(String) not supported", ex);
+            return;
+        }
+        assertEquals(Objects.hash(
+                    literal.getLexicalForm(),
+                    literal.getDatatype(),
+                    literal.getLanguageTag()
+                ),
+                literal.hashCode());
+    }
+
+    @Test
+    public void hashCodeTriple() throws Exception {
+        IRI iri;
+        try {
+            iri = factory.createIRI("http://example.com/");
+        } catch (UnsupportedOperationException ex) {
+            Assume.assumeNoException(
+                    "createIRI() not supported", ex);
+            return;
+        }
+        Triple triple;
+        try {
+            triple = factory.createTriple(iri, iri, iri);
+        } catch (UnsupportedOperationException ex) {
+            Assume.assumeNoException(
+                    "createTriple() not supported", ex);
+            return;
+        }
+        assertEquals(Objects.hash(iri, iri, iri),
+                     triple.hashCode());
+    }
 }