public static NodeValue booleanEffectiveValueAsNodeValue(NodeValue nv) // F&O fn:boolean { if ( nv.isBoolean() ) // "Optimization" (saves on object churn) return nv ; return NodeValue.booleanReturn(booleanEffectiveValue(nv)) ; }
public static NodeValue booleanEffectiveValueAsNodeValue(NodeValue nv) // F&O fn:boolean { if ( nv.isBoolean() ) // "Optimization" (saves on object churn) return nv ; return NodeValue.booleanReturn(booleanEffectiveValue(nv)) ; }
@Override protected NodeValue cast(String s, NodeValue nv, XSDDatatype castType) { if ( nv.isBoolean() ) { boolean b = nv.getBoolean() ; if ( XSDDatatype.XSDfloat.equals(castType) || XSDDatatype.XSDdouble.equals(castType) ) s = ( b ? "1.0E0" : "0.0E0" ) ; else if ( XSDDatatype.XSDdecimal.equals(castType) ) s = ( b ? "1.0" : "0.0" ) ; else if ( XSDFuncOp.isIntegerType(castType)) s = ( b ? "1" : "0" ) ; // else do nothing and hope. } return super.cast(s, nv, castType) ; } }
@Override public NodeValue eval(NodeValue x, NodeValue y) { // Evaluation only happens as part of copySubstitute. // Proper evaluation is a special form as above. if ( ! x.isBoolean() ) throw new ExprEvalException("Not a boolean: "+x) ; if ( ! y.isBoolean() ) throw new ExprEvalException("Not a boolean: "+y) ; boolean boolX = x.getBoolean() ; boolean boolY = y.getBoolean() ; return NodeValue.makeBoolean( boolX || boolY ) ; }
@Override public NodeValue eval(NodeValue x, NodeValue y) { // Evaluation only happens as part of copySubstitute. // Proper evaluation is a special form as above. if ( ! x.isBoolean() ) throw new ExprEvalException("Not a boolean: "+x) ; if ( ! y.isBoolean() ) throw new ExprEvalException("Not a boolean: "+y) ; boolean boolX = x.getBoolean() ; boolean boolY = y.getBoolean() ; return NodeValue.makeBoolean( boolX && boolY ) ; }
@Override public NodeValue eval(NodeValue x, NodeValue y) { // Evaluation only happens as part of copySubstitute. // Proper evaluation is a special form as above. if ( ! x.isBoolean() ) throw new ExprEvalException("Not a boolean: "+x) ; if ( ! y.isBoolean() ) throw new ExprEvalException("Not a boolean: "+y) ; boolean boolX = x.getBoolean() ; boolean boolY = y.getBoolean() ; return NodeValue.makeBoolean( boolX && boolY ) ; }
@Override public NodeValue eval(NodeValue x, NodeValue y) { // Evaluation only happens as part of copySubstitute. // Proper evaluation is a special form as above. if ( ! x.isBoolean() ) throw new ExprEvalException("Not a boolean: "+x) ; if ( ! y.isBoolean() ) throw new ExprEvalException("Not a boolean: "+y) ; boolean boolX = x.getBoolean() ; boolean boolY = y.getBoolean() ; return NodeValue.makeBoolean( boolX || boolY ) ; }
public static boolean booleanEffectiveValue(NodeValue nv) // F&O fn:boolean { // Apply the "boolean effective value" rules //boolean: value of the boolean (strictly, if derived from xsd:boolean) //string: length(string) > 0 //numeric: number != Nan && number != 0 // http://www.w3.org/TR/xquery/#dt-ebv if ( nv.isBoolean() ) return nv.getBoolean() ; if ( nv.isString() ) return nv.getString().length() > 0 ; if ( nv.isInteger() ) return ! nv.getInteger().equals(NodeValue.IntegerZERO) ; if ( nv.isDecimal() ) return ! nv.getDecimal().equals(NodeValue.DecimalZERO) ; if ( nv.isDouble() ) return nv.getDouble() != 0.0 ; NodeValue.raise(new ExprEvalException("Not a boolean effective value (wrong type): "+nv)) ; // Does not return return false ; }
public static boolean booleanEffectiveValue(NodeValue nv) // F&O fn:boolean { // Apply the "boolean effective value" rules //boolean: value of the boolean (strictly, if derived from xsd:boolean) //string: length(string) > 0 //numeric: number != Nan && number != 0 // http://www.w3.org/TR/xquery/#dt-ebv if ( nv.isBoolean() ) return nv.getBoolean() ; if ( nv.isString() ) return nv.getString().length() > 0 ; if ( nv.isInteger() ) return ! nv.getInteger().equals(NodeValue.IntegerZERO) ; if ( nv.isDecimal() ) return ! nv.getDecimal().equals(NodeValue.DecimalZERO) ; if ( nv.isDouble() ) return nv.getDouble() != 0.0 ; NodeValue.raise(new ExprEvalException("Not a boolean effective value (wrong type): "+nv)) ; // Does not return return false ; }
if ( nv.isBoolean() ) return nv ; return super.cast(s, nv, castType) ;
@Override public Object open(Assembler a, Resource root, Mode mode) { boolean transactional = true; if (root.hasProperty(DatasetAssemblerVocab.pTransactional)) { Node b = root.getProperty(DatasetAssemblerVocab.pTransactional).getObject().asNode(); NodeValue nv = NodeValue.makeNode(b); if (nv.isBoolean()) { transactional = nv.getBoolean(); } else { Log.warn(DatasetNullAssembler.class, "Failed to recognize value for transactional setting (ignored): " + b); } } DatasetGraph dsg = transactional ? new GraphStoreNullTransactional() : new GraphStoreNull(); return DatasetFactory.create(dsg) ; } }
private static ValueSpaceClassification classifyValueSpace(NodeValue nv) { if ( nv.isNumber() ) return VSPACE_NUM ; if ( nv.isDateTime() ) return VSPACE_DATETIME ; if ( nv.isDate() ) return VSPACE_DATE ; if ( nv.isTime() ) return VSPACE_TIME ; if ( nv.isDuration() ) return VSPACE_DURATION ; if ( nv.isGYear() ) return VSPACE_G_YEAR ; if ( nv.isGYearMonth() ) return VSPACE_G_YEARMONTH ; if ( nv.isGMonth() ) return VSPACE_G_MONTH ; if ( nv.isGMonthDay() ) return VSPACE_G_MONTHDAY ; if ( nv.isGDay() ) return VSPACE_G_DAY ; if ( VALUE_EXTENSIONS && nv.isDate() ) return VSPACE_DATE ; if ( nv.isString()) return VSPACE_STRING ; if ( nv.isBoolean()) return VSPACE_BOOLEAN ; if ( ! nv.isLiteral() ) return VSPACE_NODE ; if ( VALUE_EXTENSIONS && nv.getNode() != null && nv.getNode().isLiteral() && ! nv.getNode().getLiteralLanguage().equals("") ) return VSPACE_LANG ; return VSPACE_UNKNOWN ; }
private static ValueSpaceClassification classifyValueSpace(NodeValue nv) { if ( nv.isNumber() ) return VSPACE_NUM ; if ( nv.isDateTime() ) return VSPACE_DATETIME ; if ( nv.isDate() ) return VSPACE_DATE ; if ( nv.isTime() ) return VSPACE_TIME ; if ( nv.isDuration() ) return VSPACE_DURATION ; if ( nv.isGYear() ) return VSPACE_G_YEAR ; if ( nv.isGYearMonth() ) return VSPACE_G_YEARMONTH ; if ( nv.isGMonth() ) return VSPACE_G_MONTH ; if ( nv.isGMonthDay() ) return VSPACE_G_MONTHDAY ; if ( nv.isGDay() ) return VSPACE_G_DAY ; if ( VALUE_EXTENSIONS && nv.isDate() ) return VSPACE_DATE ; if ( nv.isString()) return VSPACE_STRING ; if ( nv.isBoolean()) return VSPACE_BOOLEAN ; if ( ! nv.isLiteral() ) return VSPACE_NODE ; if ( VALUE_EXTENSIONS && nv.getNode() != null && nv.getNode().isLiteral() && ! nv.getNode().getLiteralLanguage().equals("") ) return VSPACE_LANG ; return VSPACE_UNKNOWN ; }