JENA-816 : RDF 1.0./1.1 neutral LiteralLabel.equals.

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/782e002e
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/782e002e
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/782e002e

Branch: refs/heads/hadoop-rdf
Commit: 782e002eca0b2736bba27490c48ede9204aa0872
Parents: 8864bd0
Author: Andy Seaborne <[email protected]>
Authored: Sat Nov 22 15:22:09 2014 +0000
Committer: Andy Seaborne <[email protected]>
Committed: Sat Nov 22 15:22:09 2014 +0000

----------------------------------------------------------------------
 .../hpl/jena/graph/impl/LiteralLabelImpl.java   | 27 ++++++++++++--------
 1 file changed, 17 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/782e002e/jena-core/src/main/java/com/hp/hpl/jena/graph/impl/LiteralLabelImpl.java
----------------------------------------------------------------------
diff --git 
a/jena-core/src/main/java/com/hp/hpl/jena/graph/impl/LiteralLabelImpl.java 
b/jena-core/src/main/java/com/hp/hpl/jena/graph/impl/LiteralLabelImpl.java
index b31288c..50a3979 100644
--- a/jena-core/src/main/java/com/hp/hpl/jena/graph/impl/LiteralLabelImpl.java
+++ b/jena-core/src/main/java/com/hp/hpl/jena/graph/impl/LiteralLabelImpl.java
@@ -19,6 +19,7 @@
 package com.hp.hpl.jena.graph.impl;
 
 import java.util.Locale ;
+import java.util.Objects ;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -299,7 +300,7 @@ final /*public*/ class LiteralLabelImpl implements 
LiteralLabel {
     public Object getIndexingValue() {
         return
             isXML() ? this
-            : !lang.equals( "" ) ? getLexicalForm() + "@" + 
lang.toLowerCase(Locale.ENGLISH)
+            : !lang.equals( "" ) ? getLexicalForm() + "@" + 
lang.toLowerCase(Locale.ROOT)
             : wellformed ? getValue()
             : getLexicalForm() 
             ;
@@ -359,15 +360,21 @@ final /*public*/ class LiteralLabelImpl implements 
LiteralLabel {
                return false;
            }
            LiteralLabel otherLiteral = (LiteralLabel) other;
-           boolean typeEqual =
-               (dtype == null
-                   ? otherLiteral.getDatatype() == null
-                   : dtype.equals(otherLiteral.getDatatype()));
-           boolean langEqual =
-               (dtype == null ? lang.equals(otherLiteral.language()) : true);
-           return typeEqual
-               && langEqual
-               && getLexicalForm().equals(otherLiteral.getLexicalForm());
+           
+           boolean typeEqual = Objects.equals(dtype, 
otherLiteral.getDatatype()) ;
+           if ( !typeEqual )
+               return false ;
+
+           boolean lexEquals = Objects.equals(lexicalForm, 
otherLiteral.getLexicalForm());
+        if ( ! lexEquals )
+            return false ;
+
+        boolean langEqual = Objects.equals(lang, otherLiteral.language()) ;
+           if ( ! langEqual )
+               return false ;
+           // Ignore xml flag as it is calculated from the lexical form + 
datatype 
+           // Ignore value as lexical form + datatype -> value is a function. 
+           return true ;
        }
 
        /** 

Reply via email to