You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by rv...@apache.org on 2015/03/17 12:21:46 UTC
[34/52] [abbrv] jena git commit: JENA-886 : Use datatypes from Jena
datatypes.
JENA-886 : Use datatypes from Jena datatypes.
xsd:dateTimeStamp, xsd:yearMonthDuration, xsd:dayTimeDuration
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/ec5b5dad
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/ec5b5dad
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/ec5b5dad
Branch: refs/heads/JENA-507
Commit: ec5b5dad8a6d4da444b2525c6af061ee5196bbcd
Parents: 7663226
Author: Andy Seaborne <an...@apache.org>
Authored: Sun Mar 8 17:31:19 2015 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Sun Mar 8 17:31:19 2015 +0000
----------------------------------------------------------------------
.../com/hp/hpl/jena/sparql/expr/NodeValue.java | 89 ++++++++------------
1 file changed, 33 insertions(+), 56 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/ec5b5dad/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/NodeValue.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/NodeValue.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/NodeValue.java
index 1a16596..d08818f 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/NodeValue.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/NodeValue.java
@@ -31,7 +31,7 @@ import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDgMonth ;
import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDgMonthDay ;
import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDgYear ;
import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDgYearMonth ;
-import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDinteger ;
+import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.* ;
import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDstring ;
import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDtime ;
import static com.hp.hpl.jena.sparql.expr.ValueSpaceClassification.VSPACE_BOOLEAN ;
@@ -1035,16 +1035,11 @@ public abstract class NodeValue extends ExprNode
}
// Jena code does not have these types (yet)
- private static final String dtXSDdateTimeStamp = XSD+"#dateTimeStamp" ;
- private static final String dtXSDdayTimeDuration = XSD+"#dayTimeDuration" ;
- private static final String dtXSDyearMonthDuration = XSD+"#yearMonthDuration" ;
private static final String dtXSDprecisionDecimal = XSD+"#precisionDecimal" ;
// Returns null for unrecognized literal.
- private static NodeValue _setByValue(Node node)
- {
+ private static NodeValue _setByValue(Node node) {
if ( NodeUtils.hasLang(node) )
- // Check for RDF 1.1!
return null ;
LiteralLabel lit = node.getLiteral() ;
String lex = lit.getLexicalForm() ;
@@ -1054,8 +1049,7 @@ public abstract class NodeValue extends ExprNode
// Only XSD supported.
// And (for testing) roman numerals.
String datatypeURI = datatype.getURI() ;
- if ( ! datatypeURI.startsWith(xsdNamespace) && ! SystemARQ.EnableRomanNumerals )
- {
+ if ( !datatypeURI.startsWith(xsdNamespace) && !SystemARQ.EnableRomanNumerals ) {
// Not XSD.
return null ;
}
@@ -1076,8 +1070,7 @@ public abstract class NodeValue extends ExprNode
// Order here is promotion order integer-decimal-float-double
- if ( ! datatype.equals(XSDdecimal) )
- {
+ if ( ! datatype.equals(XSDdecimal) ) {
// XSD integer and derived types
if ( XSDinteger.isValidLiteral(lit) )
{
@@ -1092,93 +1085,77 @@ public abstract class NodeValue extends ExprNode
}
}
- if ( datatype.equals(XSDdecimal) && XSDdecimal.isValidLiteral(lit) )
- {
+ if ( datatype.equals(XSDdecimal) && XSDdecimal.isValidLiteral(lit) ) {
BigDecimal decimal = new BigDecimal(lit.getLexicalForm()) ;
return new NodeValueDecimal(decimal, node) ;
}
-
- if ( datatype.equals(XSDfloat) && XSDfloat.isValidLiteral(lit) )
- {
+
+ if ( datatype.equals(XSDfloat) && XSDfloat.isValidLiteral(lit) ) {
// NB If needed, call to floatValue, then assign to double.
// Gets 1.3f != 1.3d right
float f = ((Number)lit.getValue()).floatValue() ;
return new NodeValueFloat(f, node) ;
}
- if ( datatype.equals(XSDdouble) && XSDdouble.isValidLiteral(lit) )
- {
+ if ( datatype.equals(XSDdouble) && XSDdouble.isValidLiteral(lit) ) {
double d = ((Number)lit.getValue()).doubleValue() ;
return new NodeValueDouble(d, node) ;
}
- // XXX Pending Jena update ...
- if ( ( datatype.equals(XSDdateTime) || dtXSDdateTimeStamp.equals(datatypeURI) ) &&
- XSDdateTime.isValid(lex) )
- {
+ if ( (datatype.equals(XSDdateTime) || datatype.equals(XSDdateTimeStamp)) && XSDdateTime.isValid(lex) ) {
XSDDateTime dateTime = (XSDDateTime)lit.getValue() ;
return new NodeValueDT(lex, node) ;
}
-
- if ( datatype.equals(XSDdate) && XSDdate.isValidLiteral(lit) )
- {
- // Jena datatype support works on masked dataTimes.
+
+ if ( datatype.equals(XSDdate) && XSDdate.isValidLiteral(lit) ) {
+ // Jena datatype support works on masked dataTimes.
XSDDateTime dateTime = (XSDDateTime)lit.getValue() ;
return new NodeValueDT(lex, node) ;
}
-
- if ( datatype.equals(XSDtime) && XSDtime.isValidLiteral(lit) )
- {
- // Jena datatype support works on masked dataTimes.
+
+ if ( datatype.equals(XSDtime) && XSDtime.isValidLiteral(lit) ) {
+ // Jena datatype support works on masked dataTimes.
XSDDateTime time = (XSDDateTime)lit.getValue() ;
return new NodeValueDT(lex, node) ;
}
-
- if ( datatype.equals(XSDgYear) && XSDgYear.isValidLiteral(lit) )
- {
+
+ if ( datatype.equals(XSDgYear) && XSDgYear.isValidLiteral(lit) ) {
XSDDateTime time = (XSDDateTime)lit.getValue() ;
return new NodeValueDT(lex, node) ;
}
- if ( datatype.equals(XSDgYearMonth) && XSDgYearMonth.isValidLiteral(lit) )
- {
+ if ( datatype.equals(XSDgYearMonth) && XSDgYearMonth.isValidLiteral(lit) ) {
XSDDateTime time = (XSDDateTime)lit.getValue() ;
return new NodeValueDT(lex, node) ;
}
- if ( datatype.equals(XSDgMonth) && XSDgMonth.isValidLiteral(lit) )
- {
+ if ( datatype.equals(XSDgMonth) && XSDgMonth.isValidLiteral(lit) ) {
XSDDateTime time = (XSDDateTime)lit.getValue() ;
return new NodeValueDT(lex, node) ;
}
-
- if ( datatype.equals(XSDgMonthDay) && XSDgMonthDay.isValidLiteral(lit) )
- {
+
+ if ( datatype.equals(XSDgMonthDay) && XSDgMonthDay.isValidLiteral(lit) ) {
XSDDateTime time = (XSDDateTime)lit.getValue() ;
return new NodeValueDT(lex, node) ;
}
- if ( datatype.equals(XSDgDay) && XSDgDay.isValidLiteral(lit) )
- {
+ if ( datatype.equals(XSDgDay) && XSDgDay.isValidLiteral(lit) ) {
XSDDateTime time = (XSDDateTime)lit.getValue() ;
return new NodeValueDT(lex, node) ;
}
+
+ if ( datatype.equals(XSDduration) && XSDduration.isValid(lex) ) {
+ Duration duration = xmlDatatypeFactory.newDuration(lex) ;
+ return new NodeValueDuration(duration, node) ;
+ }
- // XXX Pending Jena update ...
- if ( ( datatype.equals(XSDduration) ||
- dtXSDdayTimeDuration.equals(datatypeURI) ||
- dtXSDyearMonthDuration.equals(datatypeURI) ) &&
- XSDduration.isValid(lex) ) // use lex
- {
+ if ( datatype.equals(XSDyearMonthDuration) && XSDyearMonthDuration.isValid(lex) ) {
+ Duration duration = xmlDatatypeFactory.newDuration(lex) ;
+ return new NodeValueDuration(duration, node) ;
+ }
+ if ( datatype.equals(XSDdayTimeDuration) && XSDdayTimeDuration.isValid(lex) ) {
Duration duration = xmlDatatypeFactory.newDuration(lex) ;
-
- if ( dtXSDdayTimeDuration.equals(datatypeURI) && ! XSDFuncOp.isDayTime(duration) )
- return null ;
- if ( dtXSDyearMonthDuration.equals(datatypeURI) && ! XSDFuncOp.isYearMonth(duration) )
- return null ;
-
return new NodeValueDuration(duration, node) ;
}
- if ( datatype.equals(XSDboolean) && XSDboolean.isValidLiteral(lit) )
- {
+ if ( datatype.equals(XSDboolean) && XSDboolean.isValidLiteral(lit) ) {
boolean b = (Boolean) lit.getValue();
return new NodeValueBoolean(b, node) ;
}