CLEREZZA-1001: Using rdf:langString datatype where necessary
diff --git a/impl.sparql/src/main/java/org/apache/clerezza/commons/rdf/impl/sparql/SparqlClient.java b/impl.sparql/src/main/java/org/apache/clerezza/commons/rdf/impl/sparql/SparqlClient.java
index 4510907..90a2b96 100644
--- a/impl.sparql/src/main/java/org/apache/clerezza/commons/rdf/impl/sparql/SparqlClient.java
+++ b/impl.sparql/src/main/java/org/apache/clerezza/commons/rdf/impl/sparql/SparqlClient.java
@@ -98,6 +98,7 @@
private String value;
private Map<String, BlankNode> bNodeMap = new HashMap<>();
private static final IRI XSD_STRING = new IRI("http://www.w3.org/2001/XMLSchema#string");
+ private static final IRI RDF_LANG_STRING = new IRI("http://www.w3.org/1999/02/22-rdf-syntax-ns#langString");
private RDFTerm getBNode(String value) {
if (!bNodeMap.containsKey(value)) {
@@ -195,6 +196,9 @@
@Override
public IRI getDataType() {
+ if (language != null) {
+ return RDF_LANG_STRING;
+ }
//TODO implement
return XSD_STRING;
}
diff --git a/impl.utils/src/main/java/org/apache/clerezza/commons/rdf/impl/utils/PlainLiteralImpl.java b/impl.utils/src/main/java/org/apache/clerezza/commons/rdf/impl/utils/PlainLiteralImpl.java
index 53bd93e..856cdf2 100644
--- a/impl.utils/src/main/java/org/apache/clerezza/commons/rdf/impl/utils/PlainLiteralImpl.java
+++ b/impl.utils/src/main/java/org/apache/clerezza/commons/rdf/impl/utils/PlainLiteralImpl.java
@@ -30,14 +30,11 @@
*/
public class PlainLiteralImpl extends AbstractLiteral implements Literal, Serializable {
- private String lexicalForm;
- private Language language = null;
+ private final String lexicalForm;
+ private final Language language;
public PlainLiteralImpl(String value) {
- if (value == null) {
- throw new IllegalArgumentException("The literal string cannot be null");
- }
- this.lexicalForm = value;
+ this(value, null);
}
public PlainLiteralImpl(String value, Language language) {
@@ -46,6 +43,11 @@
}
this.lexicalForm = value;
this.language = language;
+ if (language == null) {
+ dataType = XSD_STRING;
+ } else {
+ dataType = RDF_LANG_STRING;
+ }
}
@Override
@@ -70,8 +72,10 @@
@Override
public IRI getDataType() {
- return XSD_STRING;
+ return dataType;
}
+ private final IRI dataType;
private static final IRI XSD_STRING = new IRI("http://www.w3.org/2001/XMLSchema#string");
- private static final int XSD_STRING_HASH = XSD_STRING.hashCode();
+ private static final IRI RDF_LANG_STRING = new IRI("http://www.w3.org/1999/02/22-rdf-syntax-ns#langString");
+ //private static final int XSD_STRING_HASH = dataType.hashCode();
}