@Override public Iterator<byte[][]> rangeAsIDs( final Value[] query, final Literal lower, final boolean equalsLower, final Literal upper, final boolean equalsUpper, final boolean reverse, final int limit) throws DataAccessLayerException { if (query == null || query.length != 2 || isVariable(query[1])) { return Iterators.emptyIterator(); } final double lowerBound = asDecimal(lower, MIN_LOWER_BOUND).doubleValue(); final double upperBound = asDecimal(upper, MAX_UPPER_BOUND).doubleValue(); return _rdfIndexDAO.numericRangeQuery(query, lowerBound, equalsLower, upperBound, equalsUpper, reverse, limit); }
@Override public Iterator<byte[][]> rangeAsIDs( final Value[] query, final Literal lower, final boolean equalsLower, final Literal upper, final boolean equalsUpper, final boolean reverse, final int limit) throws DataAccessLayerException { if (query == null || query.length != 2 || isVariable(query[1])) { return Iterators.emptyIterator(); } final double lowerBound = asDecimal(lower, MIN_LOWER_BOUND).doubleValue(); final double upperBound = asDecimal(upper, MAX_UPPER_BOUND).doubleValue(); return _rdfIndexDAO.numericRangeQuery(query, lowerBound, equalsLower, upperBound, equalsUpper, reverse, limit); }
/** * A literal cannot be converted in a decimal representation. */ @Test public void boundWithUnconvertibleLiteral() { final String[] nAnValues = { null, "", " ", "abc1234def", "ThisIsNaN", }; for (final String nan : nAnValues) { final Literal literal = nan != null ? ValueFactoryImpl.getInstance().createLiteral(nan) : null; assertEquals(TripleStore.MAX_UPPER_BOUND, ((TripleStore) _tripleStore).asDecimal(literal, TripleStore.MAX_UPPER_BOUND)); assertEquals(TripleStore.MIN_LOWER_BOUND, ((TripleStore) _tripleStore).asDecimal(literal, TripleStore.MIN_LOWER_BOUND)); } }
/** * A literal can be converted in a decimal representation. */ @Test public void boundWithConvertibleLiteral() { final String[] numericValues = { "1", "0", "1.9927883", "-0.288382", "132" }; for (final String value : numericValues) { assertEquals(new BigDecimal(value), ((TripleStore) _tripleStore).asDecimal(ValueFactoryImpl.getInstance().createLiteral(value), null)); } }
assertNotNull(object); if (object instanceof Literal) { final BigDecimal numericValue = ((TripleStore) _tripleStore).asDecimal((Literal) object, null); assertNotNull(numericValue); rangeItems.add(numericValue); final Statement triple = iter.next(); final Literal literal = (Literal) triple.getObject(); final BigDecimal numericValue = ((TripleStore) _tripleStore).asDecimal(literal, null); assertNotNull(numericValue); itemsFromRangeQuery.add(numericValue);
assertNotNull(object); if (object instanceof Literal) { final BigDecimal numericValue = ((TripleStore) _tripleStore).asDecimal((Literal) object, null); assertNotNull(numericValue); rangeItems.add(numericValue); final Statement triple = iter.next(); final Literal literal = (Literal) triple.getObject(); final BigDecimal numericValue = ((TripleStore) _tripleStore).asDecimal(literal, null); assertNotNull(numericValue); itemsFromRangeQuery.add(numericValue);
final Literal objectFromRangeQuery = (Literal) rangeResultTriple.getObject(); final BigDecimal valueFromRangeQuery = ((TripleStore) _tripleStore).asDecimal(objectFromRangeQuery, null); assertNotNull("Literal object cannot be null for this kind of (range) query result.", valueFromRangeQuery); final BigDecimal valueFromSparqlQuery = ((TripleStore) _tripleStore).asDecimal(objectFromSparqlQuery, null); assertNotNull("Literal object cannot be null for this kind of (SPARQL) query result.", valueFromSparqlQuery);