You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2016/05/14 14:03:05 UTC
[06/42] jena git commit: Merge commit 'refs/pull/143/head' of
github.com:apache/jena
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-fuseki2/jena-fuseki-core/src/main/webapp/js/lib/sprintf-0.7-beta1.js
----------------------------------------------------------------------
diff --cc jena-fuseki2/jena-fuseki-core/src/main/webapp/js/lib/sprintf-0.7-beta1.js
index 0e8d02c,0e8d02c..96d3131
--- a/jena-fuseki2/jena-fuseki-core/src/main/webapp/js/lib/sprintf-0.7-beta1.js
+++ b/jena-fuseki2/jena-fuseki-core/src/main/webapp/js/lib/sprintf-0.7-beta1.js
@@@ -1,183 -1,183 +1,183 @@@
--/**
--sprintf() for JavaScript 0.7-beta1
--http://www.diveintojavascript.com/projects/javascript-sprintf
--
--Copyright (c) Alexandru Marasteanu <alexaholic [at) gmail (dot] com>
--All rights reserved.
--
--Redistribution and use in source and binary forms, with or without
--modification, are permitted provided that the following conditions are met:
-- * Redistributions of source code must retain the above copyright
-- notice, this list of conditions and the following disclaimer.
-- * Redistributions in binary form must reproduce the above copyright
-- notice, this list of conditions and the following disclaimer in the
-- documentation and/or other materials provided with the distribution.
-- * Neither the name of sprintf() for JavaScript nor the
-- names of its contributors may be used to endorse or promote products
-- derived from this software without specific prior written permission.
--
--THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
--ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
--WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
--DISCLAIMED. IN NO EVENT SHALL Alexandru Marasteanu BE LIABLE FOR ANY
--DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
--(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
--LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
--ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
--(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
--SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--
--
--Changelog:
--2010.09.06 - 0.7-beta1
-- - features: vsprintf, support for named placeholders
-- - enhancements: format cache, reduced global namespace pollution
--
--2010.05.22 - 0.6:
-- - reverted to 0.4 and fixed the bug regarding the sign of the number 0
-- Note:
-- Thanks to Raphael Pigulla <raph (at] n3rd [dot) org> (http://www.n3rd.org/)
-- who warned me about a bug in 0.5, I discovered that the last update was
-- a regress. I appologize for that.
--
--2010.05.09 - 0.5:
-- - bug fix: 0 is now preceeded with a + sign
-- - bug fix: the sign was not at the right position on padded results (Kamal Abdali)
-- - switched from GPL to BSD license
--
--2007.10.21 - 0.4:
-- - unit test and patch (David Baird)
--
--2007.09.17 - 0.3:
-- - bug fix: no longer throws exception on empty paramenters (Hans Pufal)
--
--2007.09.11 - 0.2:
-- - feature: added argument swapping
--
--2007.04.03 - 0.1:
-- - initial release
--**/
--
--var sprintf = (function() {
-- function get_type(variable) {
-- return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase();
-- }
-- function str_repeat(input, multiplier) {
-- for (var output = []; multiplier > 0; output[--multiplier] = input) {/* do nothing */}
-- return output.join('');
-- }
--
-- var str_format = function() {
-- if (!str_format.cache.hasOwnProperty(arguments[0])) {
-- str_format.cache[arguments[0]] = str_format.parse(arguments[0]);
-- }
-- return str_format.format.call(null, str_format.cache[arguments[0]], arguments);
-- };
--
-- str_format.format = function(parse_tree, argv) {
-- var cursor = 1, tree_length = parse_tree.length, node_type = '', arg, output = [], i, k, match, pad, pad_character, pad_length;
-- for (i = 0; i < tree_length; i++) {
-- node_type = get_type(parse_tree[i]);
-- if (node_type === 'string') {
-- output.push(parse_tree[i]);
-- }
-- else if (node_type === 'array') {
-- match = parse_tree[i]; // convenience purposes only
-- if (match[2]) { // keyword argument
-- arg = argv[cursor];
-- for (k = 0; k < match[2].length; k++) {
-- if (!arg.hasOwnProperty(match[2][k])) {
-- throw(sprintf('[sprintf] property "%s" does not exist', match[2][k]));
-- }
-- arg = arg[match[2][k]];
-- }
-- }
-- else if (match[1]) { // positional argument (explicit)
-- arg = argv[match[1]];
-- }
-- else { // positional argument (implicit)
-- arg = argv[cursor++];
-- }
--
-- if (/[^s]/.test(match[8]) && (get_type(arg) != 'number')) {
-- throw(sprintf('[sprintf] expecting number but found %s', get_type(arg)));
-- }
-- switch (match[8]) {
-- case 'b': arg = arg.toString(2); break;
-- case 'c': arg = String.fromCharCode(arg); break;
-- case 'd': arg = parseInt(arg, 10); break;
-- case 'e': arg = match[7] ? arg.toExponential(match[7]) : arg.toExponential(); break;
-- case 'f': arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg); break;
-- case 'o': arg = arg.toString(8); break;
-- case 's': arg = ((arg = String(arg)) && match[7] ? arg.substring(0, match[7]) : arg); break;
-- case 'u': arg = Math.abs(arg); break;
-- case 'x': arg = arg.toString(16); break;
-- case 'X': arg = arg.toString(16).toUpperCase(); break;
-- }
-- arg = (/[def]/.test(match[8]) && match[3] && arg >= 0 ? '+'+ arg : arg);
-- pad_character = match[4] ? match[4] == '0' ? '0' : match[4].charAt(1) : ' ';
-- pad_length = match[6] - String(arg).length;
-- pad = match[6] ? str_repeat(pad_character, pad_length) : '';
-- output.push(match[5] ? arg + pad : pad + arg);
-- }
-- }
-- return output.join('');
-- };
--
-- str_format.cache = {};
--
-- str_format.parse = function(fmt) {
-- var _fmt = fmt, match = [], parse_tree = [], arg_names = 0;
-- while (_fmt) {
-- if ((match = /^[^\x25]+/.exec(_fmt)) !== null) {
-- parse_tree.push(match[0]);
-- }
-- else if ((match = /^\x25{2}/.exec(_fmt)) !== null) {
-- parse_tree.push('%');
-- }
-- else if ((match = /^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(_fmt)) !== null) {
-- if (match[2]) {
-- arg_names |= 1;
-- var field_list = [], replacement_field = match[2], field_match = [];
-- if ((field_match = /^([a-z_][a-z_\d]*)/i.exec(replacement_field)) !== null) {
-- field_list.push(field_match[1]);
-- while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {
-- if ((field_match = /^\.([a-z_][a-z_\d]*)/i.exec(replacement_field)) !== null) {
-- field_list.push(field_match[1]);
-- }
-- else if ((field_match = /^\[(\d+)\]/.exec(replacement_field)) !== null) {
-- field_list.push(field_match[1]);
-- }
-- else {
-- throw('[sprintf] huh?');
-- }
-- }
-- }
-- else {
-- throw('[sprintf] huh?');
-- }
-- match[2] = field_list;
-- }
-- else {
-- arg_names |= 2;
-- }
-- if (arg_names === 3) {
-- throw('[sprintf] mixing positional and named placeholders is not (yet) supported');
-- }
-- parse_tree.push(match);
-- }
-- else {
-- throw('[sprintf] huh?');
-- }
-- _fmt = _fmt.substring(match[0].length);
-- }
-- return parse_tree;
-- };
--
-- return str_format;
--})();
--
--var vsprintf = function(fmt, argv) {
-- argv.unshift(fmt);
-- return sprintf.apply(null, argv);
--};
++/**
++sprintf() for JavaScript 0.7-beta1
++http://www.diveintojavascript.com/projects/javascript-sprintf
++
++Copyright (c) Alexandru Marasteanu <alexaholic [at) gmail (dot] com>
++All rights reserved.
++
++Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions are met:
++ * Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ * Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ * Neither the name of sprintf() for JavaScript nor the
++ names of its contributors may be used to endorse or promote products
++ derived from this software without specific prior written permission.
++
++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
++DISCLAIMED. IN NO EVENT SHALL Alexandru Marasteanu BE LIABLE FOR ANY
++DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
++LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
++ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
++SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++
++Changelog:
++2010.09.06 - 0.7-beta1
++ - features: vsprintf, support for named placeholders
++ - enhancements: format cache, reduced global namespace pollution
++
++2010.05.22 - 0.6:
++ - reverted to 0.4 and fixed the bug regarding the sign of the number 0
++ Note:
++ Thanks to Raphael Pigulla <raph (at] n3rd [dot) org> (http://www.n3rd.org/)
++ who warned me about a bug in 0.5, I discovered that the last update was
++ a regress. I appologize for that.
++
++2010.05.09 - 0.5:
++ - bug fix: 0 is now preceeded with a + sign
++ - bug fix: the sign was not at the right position on padded results (Kamal Abdali)
++ - switched from GPL to BSD license
++
++2007.10.21 - 0.4:
++ - unit test and patch (David Baird)
++
++2007.09.17 - 0.3:
++ - bug fix: no longer throws exception on empty paramenters (Hans Pufal)
++
++2007.09.11 - 0.2:
++ - feature: added argument swapping
++
++2007.04.03 - 0.1:
++ - initial release
++**/
++
++var sprintf = (function() {
++ function get_type(variable) {
++ return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase();
++ }
++ function str_repeat(input, multiplier) {
++ for (var output = []; multiplier > 0; output[--multiplier] = input) {/* do nothing */}
++ return output.join('');
++ }
++
++ var str_format = function() {
++ if (!str_format.cache.hasOwnProperty(arguments[0])) {
++ str_format.cache[arguments[0]] = str_format.parse(arguments[0]);
++ }
++ return str_format.format.call(null, str_format.cache[arguments[0]], arguments);
++ };
++
++ str_format.format = function(parse_tree, argv) {
++ var cursor = 1, tree_length = parse_tree.length, node_type = '', arg, output = [], i, k, match, pad, pad_character, pad_length;
++ for (i = 0; i < tree_length; i++) {
++ node_type = get_type(parse_tree[i]);
++ if (node_type === 'string') {
++ output.push(parse_tree[i]);
++ }
++ else if (node_type === 'array') {
++ match = parse_tree[i]; // convenience purposes only
++ if (match[2]) { // keyword argument
++ arg = argv[cursor];
++ for (k = 0; k < match[2].length; k++) {
++ if (!arg.hasOwnProperty(match[2][k])) {
++ throw(sprintf('[sprintf] property "%s" does not exist', match[2][k]));
++ }
++ arg = arg[match[2][k]];
++ }
++ }
++ else if (match[1]) { // positional argument (explicit)
++ arg = argv[match[1]];
++ }
++ else { // positional argument (implicit)
++ arg = argv[cursor++];
++ }
++
++ if (/[^s]/.test(match[8]) && (get_type(arg) != 'number')) {
++ throw(sprintf('[sprintf] expecting number but found %s', get_type(arg)));
++ }
++ switch (match[8]) {
++ case 'b': arg = arg.toString(2); break;
++ case 'c': arg = String.fromCharCode(arg); break;
++ case 'd': arg = parseInt(arg, 10); break;
++ case 'e': arg = match[7] ? arg.toExponential(match[7]) : arg.toExponential(); break;
++ case 'f': arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg); break;
++ case 'o': arg = arg.toString(8); break;
++ case 's': arg = ((arg = String(arg)) && match[7] ? arg.substring(0, match[7]) : arg); break;
++ case 'u': arg = Math.abs(arg); break;
++ case 'x': arg = arg.toString(16); break;
++ case 'X': arg = arg.toString(16).toUpperCase(); break;
++ }
++ arg = (/[def]/.test(match[8]) && match[3] && arg >= 0 ? '+'+ arg : arg);
++ pad_character = match[4] ? match[4] == '0' ? '0' : match[4].charAt(1) : ' ';
++ pad_length = match[6] - String(arg).length;
++ pad = match[6] ? str_repeat(pad_character, pad_length) : '';
++ output.push(match[5] ? arg + pad : pad + arg);
++ }
++ }
++ return output.join('');
++ };
++
++ str_format.cache = {};
++
++ str_format.parse = function(fmt) {
++ var _fmt = fmt, match = [], parse_tree = [], arg_names = 0;
++ while (_fmt) {
++ if ((match = /^[^\x25]+/.exec(_fmt)) !== null) {
++ parse_tree.push(match[0]);
++ }
++ else if ((match = /^\x25{2}/.exec(_fmt)) !== null) {
++ parse_tree.push('%');
++ }
++ else if ((match = /^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(_fmt)) !== null) {
++ if (match[2]) {
++ arg_names |= 1;
++ var field_list = [], replacement_field = match[2], field_match = [];
++ if ((field_match = /^([a-z_][a-z_\d]*)/i.exec(replacement_field)) !== null) {
++ field_list.push(field_match[1]);
++ while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {
++ if ((field_match = /^\.([a-z_][a-z_\d]*)/i.exec(replacement_field)) !== null) {
++ field_list.push(field_match[1]);
++ }
++ else if ((field_match = /^\[(\d+)\]/.exec(replacement_field)) !== null) {
++ field_list.push(field_match[1]);
++ }
++ else {
++ throw('[sprintf] huh?');
++ }
++ }
++ }
++ else {
++ throw('[sprintf] huh?');
++ }
++ match[2] = field_list;
++ }
++ else {
++ arg_names |= 2;
++ }
++ if (arg_names === 3) {
++ throw('[sprintf] mixing positional and named placeholders is not (yet) supported');
++ }
++ parse_tree.push(match);
++ }
++ else {
++ throw('[sprintf] huh?');
++ }
++ _fmt = _fmt.substring(match[0].length);
++ }
++ return parse_tree;
++ };
++
++ return str_format;
++})();
++
++var vsprintf = function(fmt, argv) {
++ argv.unshift(fmt);
++ return sprintf.apply(null, argv);
++};
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestDatasetGraphAccessorHTTP.java
----------------------------------------------------------------------
diff --cc jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestDatasetGraphAccessorHTTP.java
index 964511f,964511f..590083d
--- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestDatasetGraphAccessorHTTP.java
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestDatasetGraphAccessorHTTP.java
@@@ -16,8 -16,8 +16,8 @@@
* limitations under the License.
*/
--package org.apache.jena.fuseki.http;
--
++package org.apache.jena.fuseki.http;
++
import org.apache.jena.fuseki.ServerTest ;
import org.apache.jena.web.AbstractTestDatasetGraphAccessor ;
import org.apache.jena.web.DatasetGraphAccessor ;
@@@ -25,19 -25,19 +25,19 @@@ import org.apache.jena.web.DatasetGraph
import org.junit.AfterClass ;
import org.junit.Before ;
import org.junit.BeforeClass ;
--
--public class TestDatasetGraphAccessorHTTP extends AbstractTestDatasetGraphAccessor
--{
-- @BeforeClass public static void beforeClass() { ServerTest.allocServer() ; }
-- @AfterClass public static void afterClass() { ServerTest.freeServer() ; }
++
++public class TestDatasetGraphAccessorHTTP extends AbstractTestDatasetGraphAccessor
++{
++ @BeforeClass public static void beforeClass() { ServerTest.allocServer() ; }
++ @AfterClass public static void afterClass() { ServerTest.freeServer() ; }
@Before public void before() {
ServerTest.resetServer() ;
-- }
--
--
-- @Override
-- protected DatasetGraphAccessor getDatasetUpdater()
-- {
-- return new DatasetGraphAccessorHTTP(ServerTest.serviceGSP) ;
-- }
++ }
++
++
++ @Override
++ protected DatasetGraphAccessor getDatasetUpdater()
++ {
++ return new DatasetGraphAccessorHTTP(ServerTest.serviceGSP) ;
++ }
}
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-maven-tools/src/test/java/org/apache/jena/tools/schemagen/SchemagenMojoTest.java
----------------------------------------------------------------------
diff --cc jena-maven-tools/src/test/java/org/apache/jena/tools/schemagen/SchemagenMojoTest.java
index 132010a,132010a..8df6faf
--- a/jena-maven-tools/src/test/java/org/apache/jena/tools/schemagen/SchemagenMojoTest.java
+++ b/jena-maven-tools/src/test/java/org/apache/jena/tools/schemagen/SchemagenMojoTest.java
@@@ -1,83 -1,83 +1,83 @@@
--/**
-- * Licensed to the Apache Software Foundation (ASF) under one
-- * or more contributor license agreements. See the NOTICE file
-- * distributed with this work for additional information
-- * regarding copyright ownership. The ASF licenses this file
-- * to you under the Apache License, Version 2.0 (the
-- * "License"); you may not use this file except in compliance
-- * with the License. You may obtain a copy of the License at
-- *
-- * http://www.apache.org/licenses/LICENSE-2.0
-- *
-- * Unless required by applicable law or agreed to in writing, software
-- * distributed under the License is distributed on an "AS IS" BASIS,
-- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- * See the License for the specific language governing permissions and
-- * limitations under the License.
-- */
--
--package org.apache.jena.tools.schemagen;
--
--// Imports
--///////////////
--
--import static org.junit.Assert.*;
--
--import java.io.File;
--import java.util.List;
--
--import org.junit.Test;
--import org.apache.jena.tools.schemagen.SchemagenMojo;
--
--/**
-- * <p>Unit tests for {@link SchemagenMojo}</p>
-- */
--public class SchemagenMojoTest {
--
-- @Test
-- public void testMatchFileNames0() {
-- SchemagenMojo sm = new SchemagenMojo();
--
-- List<String> s = sm.matchFileNames();
-- assertNotNull(s);
-- assertTrue( s.isEmpty() );
-- }
--
-- @Test
-- public void testMatchFileNames1() {
-- SchemagenMojo sm = new SchemagenMojo();
-- String f = "src/test/resources/test1/test1.ttl";
-- sm.addIncludes( f );
-- List<String> s = sm.matchFileNames();
-- assertNotNull(s);
-- assertEquals( 1, s.size() );
-- assertEquals( new File(f), new File(s.get(0)) );
-- }
--
-- @Test
-- public void testMatchFileNames2() {
-- SchemagenMojo sm = new SchemagenMojo();
-- String f = "src/test/resources/test1/*.ttl";
-- sm.addIncludes( f );
-- List<String> s = sm.matchFileNames();
-- assertNotNull(s);
-- assertEquals( 2, s.size() );
-- assertTrue( s.get(0).endsWith( "test1.ttl" ));
-- assertTrue( s.get(1).endsWith( "test2.ttl" ));
-- }
--
-- @Test
-- public void testMatchFileNames3() {
-- SchemagenMojo sm = new SchemagenMojo();
-- String f = "src/test/resources/test1/*.ttl";
-- sm.addIncludes( f );
-- sm.addExcludes( "src/test/resources/test1/test1.ttl" );
--
-- List<String> s = sm.matchFileNames();
-- assertNotNull(s);
-- assertEquals( 1, s.size() );
-- assertTrue( s.get(0).endsWith( "test2.ttl" ));
-- }
--
--
--}
++/**
++ * Licensed to the Apache Software Foundation (ASF) under one
++ * or more contributor license agreements. See the NOTICE file
++ * distributed with this work for additional information
++ * regarding copyright ownership. The ASF licenses this file
++ * to you under the Apache License, Version 2.0 (the
++ * "License"); you may not use this file except in compliance
++ * with the License. You may obtain a copy of the License at
++ *
++ * http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++
++package org.apache.jena.tools.schemagen;
++
++// Imports
++///////////////
++
++import static org.junit.Assert.*;
++
++import java.io.File;
++import java.util.List;
++
++import org.junit.Test;
++import org.apache.jena.tools.schemagen.SchemagenMojo;
++
++/**
++ * <p>Unit tests for {@link SchemagenMojo}</p>
++ */
++public class SchemagenMojoTest {
++
++ @Test
++ public void testMatchFileNames0() {
++ SchemagenMojo sm = new SchemagenMojo();
++
++ List<String> s = sm.matchFileNames();
++ assertNotNull(s);
++ assertTrue( s.isEmpty() );
++ }
++
++ @Test
++ public void testMatchFileNames1() {
++ SchemagenMojo sm = new SchemagenMojo();
++ String f = "src/test/resources/test1/test1.ttl";
++ sm.addIncludes( f );
++ List<String> s = sm.matchFileNames();
++ assertNotNull(s);
++ assertEquals( 1, s.size() );
++ assertEquals( new File(f), new File(s.get(0)) );
++ }
++
++ @Test
++ public void testMatchFileNames2() {
++ SchemagenMojo sm = new SchemagenMojo();
++ String f = "src/test/resources/test1/*.ttl";
++ sm.addIncludes( f );
++ List<String> s = sm.matchFileNames();
++ assertNotNull(s);
++ assertEquals( 2, s.size() );
++ assertTrue( s.get(0).endsWith( "test1.ttl" ));
++ assertTrue( s.get(1).endsWith( "test2.ttl" ));
++ }
++
++ @Test
++ public void testMatchFileNames3() {
++ SchemagenMojo sm = new SchemagenMojo();
++ String f = "src/test/resources/test1/*.ttl";
++ sm.addIncludes( f );
++ sm.addExcludes( "src/test/resources/test1/test1.ttl" );
++
++ List<String> s = sm.matchFileNames();
++ assertNotNull(s);
++ assertEquals( 1, s.size() );
++ assertTrue( s.get(0).endsWith( "test2.ttl" ));
++ }
++
++
++}
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-sdb/Data/data.ttl
----------------------------------------------------------------------
diff --cc jena-sdb/Data/data.ttl
index 423ea6d,423ea6d..42217da
--- a/jena-sdb/Data/data.ttl
+++ b/jena-sdb/Data/data.ttl
@@@ -1,34 -1,34 +1,34 @@@
--# Licensed to the Apache Software Foundation (ASF) under one
--# or more contributor license agreements. See the NOTICE file
--# distributed with this work for additional information
--# regarding copyright ownership. The ASF licenses this file
--# to you under the Apache License, Version 2.0 (the
--# "License"); you may not use this file except in compliance
--# with the License. You may obtain a copy of the License at
--#
--# http://www.apache.org/licenses/LICENSE-2.0
--#
--# Unless required by applicable law or agreed to in writing, software
--# distributed under the License is distributed on an "AS IS" BASIS,
--# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--# See the License for the specific language governing permissions and
--# limitations under the License.
--
--@prefix : <http://example/> .
--
--:x :p 1 .
--:x :p 2 .
--:x :p 3 .
--
--:x :p :a .
--:x :p :b .
--:x :p :z .
--
--:a :q1 :z1 .
--:a :q2 :z2 .
--
--:b :q1 :z1 .
--
--:z :p1 "abc" .
--:z :p2 "def" .
--:z :p3 "g" .
++# Licensed to the Apache Software Foundation (ASF) under one
++# or more contributor license agreements. See the NOTICE file
++# distributed with this work for additional information
++# regarding copyright ownership. The ASF licenses this file
++# to you under the Apache License, Version 2.0 (the
++# "License"); you may not use this file except in compliance
++# with the License. You may obtain a copy of the License at
++#
++# http://www.apache.org/licenses/LICENSE-2.0
++#
++# Unless required by applicable law or agreed to in writing, software
++# distributed under the License is distributed on an "AS IS" BASIS,
++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++# See the License for the specific language governing permissions and
++# limitations under the License.
++
++@prefix : <http://example/> .
++
++:x :p 1 .
++:x :p 2 .
++:x :p 3 .
++
++:x :p :a .
++:x :p :b .
++:x :p :z .
++
++:a :q1 :z1 .
++:a :q2 :z2 .
++
++:b :q1 :z1 .
++
++:z :p1 "abc" .
++:z :p2 "def" .
++:z :p3 "g" .
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-sdb/Data/data2.ttl
----------------------------------------------------------------------
diff --cc jena-sdb/Data/data2.ttl
index b570f9d,b570f9d..08194b6
--- a/jena-sdb/Data/data2.ttl
+++ b/jena-sdb/Data/data2.ttl
@@@ -1,20 -1,20 +1,20 @@@
--# Licensed to the Apache Software Foundation (ASF) under one
--# or more contributor license agreements. See the NOTICE file
--# distributed with this work for additional information
--# regarding copyright ownership. The ASF licenses this file
--# to you under the Apache License, Version 2.0 (the
--# "License"); you may not use this file except in compliance
--# with the License. You may obtain a copy of the License at
--#
--# http://www.apache.org/licenses/LICENSE-2.0
--#
--# Unless required by applicable law or agreed to in writing, software
--# distributed under the License is distributed on an "AS IS" BASIS,
--# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--# See the License for the specific language governing permissions and
--# limitations under the License.
--
--# Some international stuff
--@prefix : <http://example/> .
--
--:x :p "Unicode: 03 B1 \u03b1" .
++# Licensed to the Apache Software Foundation (ASF) under one
++# or more contributor license agreements. See the NOTICE file
++# distributed with this work for additional information
++# regarding copyright ownership. The ASF licenses this file
++# to you under the Apache License, Version 2.0 (the
++# "License"); you may not use this file except in compliance
++# with the License. You may obtain a copy of the License at
++#
++# http://www.apache.org/licenses/LICENSE-2.0
++#
++# Unless required by applicable law or agreed to in writing, software
++# distributed under the License is distributed on an "AS IS" BASIS,
++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++# See the License for the specific language governing permissions and
++# limitations under the License.
++
++# Some international stuff
++@prefix : <http://example/> .
++
++:x :p "Unicode: 03 B1 \u03b1" .
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-sdb/Reports/explain.rb
----------------------------------------------------------------------
diff --cc jena-sdb/Reports/explain.rb
index 49004be,49004be..1ae3b30
--- a/jena-sdb/Reports/explain.rb
+++ b/jena-sdb/Reports/explain.rb
@@@ -1,29 -1,29 +1,29 @@@
--#!/bin/env ruby
--# Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
--
--require 'format'
--
--columns=nil
--data=[]
--
--#ARGF.each do |line|
--# line.chomp!
--# v = line.split("\t")
--# if !columns
--# columns = v
--# else
--# data << v
--# end
--#end
--
--# Ruby has CSV
--require 'csv.rb'
--CSV::Reader.parse(ARGF) do |row|
-- if !columns
-- columns = row
-- else
-- data << row
-- end
--end
--
--Fmt::table(columns, data)
++#!/bin/env ruby
++# Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
++
++require 'format'
++
++columns=nil
++data=[]
++
++#ARGF.each do |line|
++# line.chomp!
++# v = line.split("\t")
++# if !columns
++# columns = v
++# else
++# data << v
++# end
++#end
++
++# Ruby has CSV
++require 'csv.rb'
++CSV::Reader.parse(ARGF) do |row|
++ if !columns
++ columns = row
++ else
++ data << row
++ end
++end
++
++Fmt::table(columns, data)
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-sdb/Reports/format.rb
----------------------------------------------------------------------
diff --cc jena-sdb/Reports/format.rb
index 682710e,682710e..acc5b0c
--- a/jena-sdb/Reports/format.rb
+++ b/jena-sdb/Reports/format.rb
@@@ -1,41 -1,41 +1,41 @@@
--# Formatting utilities
--# Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
--
--module Fmt
-- def Fmt.table(headings, body)
-- widths = calc_widths(headings, body)
-- widths = calc_widths(headings, body)
-- # Make lines like column names
-- lines = []
-- headings.each_index { |i| lines<<"-"*(widths[i]) ; }
-- lines2 = []
-- headings.each_index { |i| lines2<<"="*(widths[i]) ; }
-- print_row(lines, widths, "-", "+", "-", "+")
-- print_row(headings, widths, " ", "|", "|", "|")
-- print_row(lines2, widths, "=", "|", "|", "|")
-- body.each { |row| print_row(row, widths, " ", "|", "|", "|") }
-- print_row(lines, widths, "-", "+", "-", "+")
-- end
--
-- private
-- def Fmt.calc_widths(columns, data)
-- x = []
-- columns.each { |c| x << c.length }
-- data.each do |row|
-- row.each_index { |i| x[i] = row[i].length if row[i].length > x[i] }
-- end
-- return x
-- end
--
-- def Fmt.print_row(items, widths, sep, left, mid, right)
-- print left
-- items.each_index do |i|
-- print mid if i != 0
-- print sep
-- printf("%-*s",widths[i],items[i])
-- print sep
-- end
-- print right
-- print "\n"
-- end
--end
++# Formatting utilities
++# Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
++
++module Fmt
++ def Fmt.table(headings, body)
++ widths = calc_widths(headings, body)
++ widths = calc_widths(headings, body)
++ # Make lines like column names
++ lines = []
++ headings.each_index { |i| lines<<"-"*(widths[i]) ; }
++ lines2 = []
++ headings.each_index { |i| lines2<<"="*(widths[i]) ; }
++ print_row(lines, widths, "-", "+", "-", "+")
++ print_row(headings, widths, " ", "|", "|", "|")
++ print_row(lines2, widths, "=", "|", "|", "|")
++ body.each { |row| print_row(row, widths, " ", "|", "|", "|") }
++ print_row(lines, widths, "-", "+", "-", "+")
++ end
++
++ private
++ def Fmt.calc_widths(columns, data)
++ x = []
++ columns.each { |c| x << c.length }
++ data.each do |row|
++ row.each_index { |i| x[i] = row[i].length if row[i].length > x[i] }
++ end
++ return x
++ end
++
++ def Fmt.print_row(items, widths, sep, left, mid, right)
++ print left
++ items.each_index do |i|
++ print mid if i != 0
++ print sep
++ printf("%-*s",widths[i],items[i])
++ print sep
++ end
++ print right
++ print "\n"
++ end
++end
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-sdb/Reports/jdbc.rb
----------------------------------------------------------------------
diff --cc jena-sdb/Reports/jdbc.rb
index f90a16c,f90a16c..8b84f9a
--- a/jena-sdb/Reports/jdbc.rb
+++ b/jena-sdb/Reports/jdbc.rb
@@@ -1,139 -1,139 +1,139 @@@
--# = Module for handling JDBC Result Sets
--# Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
--
--require 'java'
--require 'format'
--include_class 'java.sql.DriverManager'
--
--module JDBC
--
--# == Class DB: a connection to a database / tablespace
-- class DB
-- attr_reader :conn
--
-- def initialize(connection)
-- @conn = connection ;
-- end
--
-- def DB.connect(url, driver, user, password)
-- Java::JavaClass.for_name(driver) ;
-- c = new(DriverManager.getConnection(url, user, password))
-- return c
-- end
--
-- def query(queryString)
-- s = @conn.createStatement()
-- return Results.new(s.executeQuery(queryString))
-- end
--
-- def query_print(queryString)
-- s = @conn.createStatement()
-- rs = Results.new(s.executeQuery(queryString))
-- rs.dump
-- rs.close
-- return nil
-- end
--
-- def close
-- @conn.close()
-- end
-- end
--
-- class Results
--
-- def initialize(jdbcResultSet)
-- @rs = jdbcResultSet
-- end
--
-- def each
-- while(@rs.next)
-- yield Row.new(@rs)
-- end
-- close
-- end
--
-- def close
-- @rs.close
-- end
--
-- # All the cols (via their display name)
-- def cols
-- if !@columns
-- md = @rs.getMetaData
-- @columns=[]
-- 1.upto(md.getColumnCount) { |i| @columns << md.getColumnLabel(i) }
-- end
-- return @columns
-- end
--
-- # All the rows, as an array of hashes (values are strings)
-- def all_rows_hash
-- x = []
-- columns = cols
-- each {|row| x << row.data(columns)}
-- close
-- return x
-- end
--
-- # All the rows, as an array of arrays
-- def all_rows_array
-- x = []
-- each {|row| x << row.as_array }
-- close
-- return x
-- end
--
-- def dump
-- # Order matters - must get columns before exhausting data and closing ResultSet
-- columns = cols
-- data = all_rows_array
-- Fmt.table(columns, data)
-- end
-- end
--
-- class Row
-- def initialize(row)
-- @row = row
-- end
--
-- # and it works for string name or integer index
-- def [](name)
-- return @row.getString(name)
-- end
--
-- def next
-- raise "Error: calling close on a Row object"
-- end
--
-- def each
-- len = @row.getMetaData.getColumnCount
-- (1..len).each { |i| yield @row.getString(i) }
-- end
--
-- def as_array
-- len = @row.getMetaData.getColumnCount
-- x = []
-- (1..len).each { |i| x << @row.getString(i) }
-- return x
-- end
--
-- # Needs column names
-- def data(cols)
-- x = {}
-- cols.each do |col|
-- x[col] = @row.getString(col)
-- if @row.wasNull
-- x[col] = nil
-- end
-- end
-- return x
-- end
--
-- # Direct any missing methods to the wrapped object
-- def method_missing(methId, *args)
-- meth = @row.method(methId)
-- meth.call *args
-- end
--
-- end
--end
++# = Module for handling JDBC Result Sets
++# Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
++
++require 'java'
++require 'format'
++include_class 'java.sql.DriverManager'
++
++module JDBC
++
++# == Class DB: a connection to a database / tablespace
++ class DB
++ attr_reader :conn
++
++ def initialize(connection)
++ @conn = connection ;
++ end
++
++ def DB.connect(url, driver, user, password)
++ Java::JavaClass.for_name(driver) ;
++ c = new(DriverManager.getConnection(url, user, password))
++ return c
++ end
++
++ def query(queryString)
++ s = @conn.createStatement()
++ return Results.new(s.executeQuery(queryString))
++ end
++
++ def query_print(queryString)
++ s = @conn.createStatement()
++ rs = Results.new(s.executeQuery(queryString))
++ rs.dump
++ rs.close
++ return nil
++ end
++
++ def close
++ @conn.close()
++ end
++ end
++
++ class Results
++
++ def initialize(jdbcResultSet)
++ @rs = jdbcResultSet
++ end
++
++ def each
++ while(@rs.next)
++ yield Row.new(@rs)
++ end
++ close
++ end
++
++ def close
++ @rs.close
++ end
++
++ # All the cols (via their display name)
++ def cols
++ if !@columns
++ md = @rs.getMetaData
++ @columns=[]
++ 1.upto(md.getColumnCount) { |i| @columns << md.getColumnLabel(i) }
++ end
++ return @columns
++ end
++
++ # All the rows, as an array of hashes (values are strings)
++ def all_rows_hash
++ x = []
++ columns = cols
++ each {|row| x << row.data(columns)}
++ close
++ return x
++ end
++
++ # All the rows, as an array of arrays
++ def all_rows_array
++ x = []
++ each {|row| x << row.as_array }
++ close
++ return x
++ end
++
++ def dump
++ # Order matters - must get columns before exhausting data and closing ResultSet
++ columns = cols
++ data = all_rows_array
++ Fmt.table(columns, data)
++ end
++ end
++
++ class Row
++ def initialize(row)
++ @row = row
++ end
++
++ # and it works for string name or integer index
++ def [](name)
++ return @row.getString(name)
++ end
++
++ def next
++ raise "Error: calling close on a Row object"
++ end
++
++ def each
++ len = @row.getMetaData.getColumnCount
++ (1..len).each { |i| yield @row.getString(i) }
++ end
++
++ def as_array
++ len = @row.getMetaData.getColumnCount
++ x = []
++ (1..len).each { |i| x << @row.getString(i) }
++ return x
++ end
++
++ # Needs column names
++ def data(cols)
++ x = {}
++ cols.each do |col|
++ x[col] = @row.getString(col)
++ if @row.wasNull
++ x[col] = nil
++ end
++ end
++ return x
++ end
++
++ # Direct any missing methods to the wrapped object
++ def method_missing(methId, *args)
++ meth = @row.method(methId)
++ meth.call *args
++ end
++
++ end
++end
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-sdb/bin2/sdbscript
----------------------------------------------------------------------
diff --cc jena-sdb/bin2/sdbscript
index 0b20a3b,0b20a3b..82b1692
--- a/jena-sdb/bin2/sdbscript
+++ b/jena-sdb/bin2/sdbscript
@@@ -1,10 -1,10 +1,10 @@@
--#!/bin/bash
--# Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
--
--if [ "$SDBROOT" = "" ]
--then
-- echo "SDBROOT not set" 1>&2
-- exit 1
-- fi
--
++#!/bin/bash
++# Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
++
++if [ "$SDBROOT" = "" ]
++then
++ echo "SDBROOT not set" 1>&2
++ exit 1
++ fi
++
exec "${SDBROOT}/bin/sdbscript" "$@"
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-sdb/src/main/resources/org/apache/jena/sdb/sdb-properties.xml
----------------------------------------------------------------------
diff --cc jena-sdb/src/main/resources/org/apache/jena/sdb/sdb-properties.xml
index bca78a9,bca78a9..b33d25b
--- a/jena-sdb/src/main/resources/org/apache/jena/sdb/sdb-properties.xml
+++ b/jena-sdb/src/main/resources/org/apache/jena/sdb/sdb-properties.xml
@@@ -1,9 -1,9 +1,9 @@@
--<?xml version="1.0" encoding="UTF-8"?>
--<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
--<!-- Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0 -->
--
--<properties version="1.0">
-- <comment>SDB System Properties</comment>
-- <entry key="org.apache.jena.sdb.version">${project.version}</entry>
-- <entry key="org.apache.jena.sdb.build.datetime">${build.time.xsd}</entry>
--</properties>
++<?xml version="1.0" encoding="UTF-8"?>
++<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
++<!-- Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0 -->
++
++<properties version="1.0">
++ <comment>SDB System Properties</comment>
++ <entry key="org.apache.jena.sdb.version">${project.version}</entry>
++ <entry key="org.apache.jena.sdb.build.datetime">${build.time.xsd}</entry>
++</properties>
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-spatial/src/main/java/org/apache/jena/query/spatial/DistanceUnitsUtils.java
----------------------------------------------------------------------
diff --cc jena-spatial/src/main/java/org/apache/jena/query/spatial/DistanceUnitsUtils.java
index d201f3b,d201f3b..1cd19de
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/DistanceUnitsUtils.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/DistanceUnitsUtils.java
@@@ -1,87 -1,87 +1,87 @@@
--/*
-- * Licensed to the Apache Software Foundation (ASF) under one
-- * or more contributor license agreements. See the NOTICE file
-- * distributed with this work for additional information
-- * regarding copyright ownership. The ASF licenses this file
-- * to you under the Apache License, Version 2.0 (the
-- * "License"); you may not use this file except in compliance
-- * with the License. You may obtain a copy of the License at
-- *
-- * http://www.apache.org/licenses/LICENSE-2.0
-- *
-- * Unless required by applicable law or agreed to in writing, software
-- * distributed under the License is distributed on an "AS IS" BASIS,
-- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- * See the License for the specific language governing permissions and
-- * limitations under the License.
-- */
--
--package org.apache.jena.query.spatial;
--
--import java.util.ArrayList;
--import java.util.List;
--
--import com.spatial4j.core.distance.DistanceUtils;
--
--public class DistanceUnitsUtils {
--
-- public final static String defaultDistanceUnit = "kilometres" ;
--
-- public final static List<String> SUPPORTED_UNITS;
-- static {
-- // International spelling "metres"
-- // As used by http://en.wikipedia.org/wiki/International_Bureau_of_Weights_and_Measures
-- SUPPORTED_UNITS = new ArrayList<String>();
-- SUPPORTED_UNITS.add("kilometres");
-- SUPPORTED_UNITS.add("kilometers"); // America spelling
-- SUPPORTED_UNITS.add("km");
-- SUPPORTED_UNITS.add("meters");
-- SUPPORTED_UNITS.add("metres");
-- SUPPORTED_UNITS.add("m");
-- SUPPORTED_UNITS.add("centimeters");
-- SUPPORTED_UNITS.add("centimetres");
-- SUPPORTED_UNITS.add("cm");
-- SUPPORTED_UNITS.add("millimetres");
-- SUPPORTED_UNITS.add("millimeters");
-- SUPPORTED_UNITS.add("mm");
-- SUPPORTED_UNITS.add("miles");
-- SUPPORTED_UNITS.add("mi");
-- SUPPORTED_UNITS.add("degrees");
-- SUPPORTED_UNITS.add("de");
-- }
--
-- public static double dist2Degrees(double dist, String units) {
-- double degrees = dist;
--
-- if (units.equals("kilometers") || units.equals("kilometres") || units.equals("km"))
-- return DistanceUtils.dist2Degrees(dist,
-- DistanceUtils.EARTH_MEAN_RADIUS_KM);
--
-- else if (units.equals("meters") || units.equals("metres") || units.equals("m"))
-- return DistanceUtils.dist2Degrees(dist / 1000,
-- DistanceUtils.EARTH_MEAN_RADIUS_KM);
--
-- else if (units.equals("centimeters") || units.equals("centimetres") || units.equals("cm"))
-- return DistanceUtils.dist2Degrees(dist / (1000 * 100),
-- DistanceUtils.EARTH_MEAN_RADIUS_KM) ;
--
-- else if ( units.equals("millimeters") || units.equals("millimetres") || units.equals("mm") ||
-- units.equals("milimeters") || units.equals("milimetres") ) // Common spelling mistake.
-- return DistanceUtils.dist2Degrees(dist / (1000 * 1000),
-- DistanceUtils.EARTH_MEAN_RADIUS_KM) ;
--
-- else if (units.equals("miles") || units.equals("mi"))
-- return DistanceUtils.dist2Degrees(dist,
-- DistanceUtils.EARTH_MEAN_RADIUS_MI);
--
-- else if (units.equals("degrees") || units.equals("de"))
-- return degrees;
--
-- throw new IllegalArgumentException("unknow distance units: "+ units);
-- }
--
-- public static boolean isSupportedUnits(String units){
-- return SUPPORTED_UNITS.contains(units);
-- }
--
--}
++/*
++ * Licensed to the Apache Software Foundation (ASF) under one
++ * or more contributor license agreements. See the NOTICE file
++ * distributed with this work for additional information
++ * regarding copyright ownership. The ASF licenses this file
++ * to you under the Apache License, Version 2.0 (the
++ * "License"); you may not use this file except in compliance
++ * with the License. You may obtain a copy of the License at
++ *
++ * http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++
++package org.apache.jena.query.spatial;
++
++import java.util.ArrayList;
++import java.util.List;
++
++import com.spatial4j.core.distance.DistanceUtils;
++
++public class DistanceUnitsUtils {
++
++ public final static String defaultDistanceUnit = "kilometres" ;
++
++ public final static List<String> SUPPORTED_UNITS;
++ static {
++ // International spelling "metres"
++ // As used by http://en.wikipedia.org/wiki/International_Bureau_of_Weights_and_Measures
++ SUPPORTED_UNITS = new ArrayList<String>();
++ SUPPORTED_UNITS.add("kilometres");
++ SUPPORTED_UNITS.add("kilometers"); // America spelling
++ SUPPORTED_UNITS.add("km");
++ SUPPORTED_UNITS.add("meters");
++ SUPPORTED_UNITS.add("metres");
++ SUPPORTED_UNITS.add("m");
++ SUPPORTED_UNITS.add("centimeters");
++ SUPPORTED_UNITS.add("centimetres");
++ SUPPORTED_UNITS.add("cm");
++ SUPPORTED_UNITS.add("millimetres");
++ SUPPORTED_UNITS.add("millimeters");
++ SUPPORTED_UNITS.add("mm");
++ SUPPORTED_UNITS.add("miles");
++ SUPPORTED_UNITS.add("mi");
++ SUPPORTED_UNITS.add("degrees");
++ SUPPORTED_UNITS.add("de");
++ }
++
++ public static double dist2Degrees(double dist, String units) {
++ double degrees = dist;
++
++ if (units.equals("kilometers") || units.equals("kilometres") || units.equals("km"))
++ return DistanceUtils.dist2Degrees(dist,
++ DistanceUtils.EARTH_MEAN_RADIUS_KM);
++
++ else if (units.equals("meters") || units.equals("metres") || units.equals("m"))
++ return DistanceUtils.dist2Degrees(dist / 1000,
++ DistanceUtils.EARTH_MEAN_RADIUS_KM);
++
++ else if (units.equals("centimeters") || units.equals("centimetres") || units.equals("cm"))
++ return DistanceUtils.dist2Degrees(dist / (1000 * 100),
++ DistanceUtils.EARTH_MEAN_RADIUS_KM) ;
++
++ else if ( units.equals("millimeters") || units.equals("millimetres") || units.equals("mm") ||
++ units.equals("milimeters") || units.equals("milimetres") ) // Common spelling mistake.
++ return DistanceUtils.dist2Degrees(dist / (1000 * 1000),
++ DistanceUtils.EARTH_MEAN_RADIUS_KM) ;
++
++ else if (units.equals("miles") || units.equals("mi"))
++ return DistanceUtils.dist2Degrees(dist,
++ DistanceUtils.EARTH_MEAN_RADIUS_MI);
++
++ else if (units.equals("degrees") || units.equals("de"))
++ return degrees;
++
++ throw new IllegalArgumentException("unknow distance units: "+ units);
++ }
++
++ public static boolean isSupportedUnits(String units){
++ return SUPPORTED_UNITS.contains(units);
++ }
++
++}
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialDatasetFactory.java
----------------------------------------------------------------------
diff --cc jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialDatasetFactory.java
index 9d0c8d5,9d0c8d5..1c919f6
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialDatasetFactory.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialDatasetFactory.java
@@@ -1,105 -1,105 +1,105 @@@
--/*
-- * Licensed to the Apache Software Foundation (ASF) under one
-- * or more contributor license agreements. See the NOTICE file
-- * distributed with this work for additional information
-- * regarding copyright ownership. The ASF licenses this file
-- * to you under the Apache License, Version 2.0 (the
-- * "License"); you may not use this file except in compliance
-- * with the License. You may obtain a copy of the License at
-- *
-- * http://www.apache.org/licenses/LICENSE-2.0
-- *
-- * Unless required by applicable law or agreed to in writing, software
-- * distributed under the License is distributed on an "AS IS" BASIS,
-- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- * See the License for the specific language governing permissions and
-- * limitations under the License.
-- */
--
--package org.apache.jena.query.spatial;
--
--import org.apache.jena.query.Dataset ;
--import org.apache.jena.query.DatasetFactory ;
--import org.apache.jena.query.spatial.assembler.SpatialVocab;
--import org.apache.jena.sparql.core.DatasetGraph ;
--import org.apache.jena.sparql.core.assembler.AssemblerUtils ;
--import org.apache.jena.sparql.util.Context ;
--import org.apache.jena.system.JenaSystem ;
--import org.apache.lucene.store.Directory;
--import org.apache.solr.client.solrj.SolrServer;
--
--public class SpatialDatasetFactory
--{
-- static { JenaSystem.init(); }
--
-- /** Use an assembler file to build a dataset with spatial search capabilities */
-- public static Dataset create(String assemblerFile)
-- {
-- return (Dataset)AssemblerUtils.build(assemblerFile, SpatialVocab.spatialDataset) ;
-- }
--
-- /** Create a text-indexed dataset */
-- public static Dataset create(Dataset base, SpatialIndex textIndex)
-- {
-- DatasetGraph dsg = base.asDatasetGraph() ;
-- dsg = create(dsg, textIndex) ;
-- return DatasetFactory.wrap(dsg) ;
-- }
--
--
-- /** Create a text-indexed dataset */
-- public static DatasetGraph create(DatasetGraph dsg, SpatialIndex spatialIndex)
-- {
-- SpatialDocProducer producer = new SpatialDocProducerTriples(spatialIndex) ;
-- DatasetGraph dsgt = new DatasetGraphSpatial(dsg, spatialIndex, producer) ;
-- // Also set on dsg
-- Context c = dsgt.getContext() ;
--
-- dsgt.getContext().set(SpatialQuery.spatialIndex, spatialIndex) ;
-- return dsgt ;
--
-- }
--
-- /** Create a Lucene TextIndex */
-- public static SpatialIndex createLuceneIndex(Directory directory, EntityDefinition entMap)
-- {
-- SpatialIndex index = new SpatialIndexLucene(directory, entMap) ;
-- return index ;
-- }
--
-- /** Create a text-indexed dataset, using Lucene */
-- public static Dataset createLucene(Dataset base, Directory directory, EntityDefinition entMap)
-- {
-- SpatialIndex index = createLuceneIndex(directory, entMap) ;
-- return create(base, index) ;
-- }
--
-- /** Create a text-indexed dataset, using Lucene */
-- public static DatasetGraph createLucene(DatasetGraph base, Directory directory, EntityDefinition entMap)
-- {
-- SpatialIndex index = createLuceneIndex(directory, entMap) ;
-- return create(base, index) ;
-- }
--
-- /** Create a Solr TextIndex */
-- public static SpatialIndex createSolrIndex(SolrServer server, EntityDefinition entMap)
-- {
-- SpatialIndex index = new SpatialIndexSolr(server, entMap) ;
-- return index ;
-- }
--
-- /** Create a text-indexed dataset, using Solr */
-- public static Dataset createSolrIndex(Dataset base, SolrServer server, EntityDefinition entMap)
-- {
-- SpatialIndex index = createSolrIndex(server, entMap) ;
-- return create(base, index) ;
-- }
--
-- /** Create a text-indexed dataset, using Solr */
-- public static DatasetGraph createSolrIndex(DatasetGraph base, SolrServer server, EntityDefinition entMap)
-- {
-- SpatialIndex index = createSolrIndex(server, entMap) ;
-- return create(base, index) ;
-- }
--}
--
++/*
++ * Licensed to the Apache Software Foundation (ASF) under one
++ * or more contributor license agreements. See the NOTICE file
++ * distributed with this work for additional information
++ * regarding copyright ownership. The ASF licenses this file
++ * to you under the Apache License, Version 2.0 (the
++ * "License"); you may not use this file except in compliance
++ * with the License. You may obtain a copy of the License at
++ *
++ * http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++
++package org.apache.jena.query.spatial;
++
++import org.apache.jena.query.Dataset ;
++import org.apache.jena.query.DatasetFactory ;
++import org.apache.jena.query.spatial.assembler.SpatialVocab;
++import org.apache.jena.sparql.core.DatasetGraph ;
++import org.apache.jena.sparql.core.assembler.AssemblerUtils ;
++import org.apache.jena.sparql.util.Context ;
++import org.apache.jena.system.JenaSystem ;
++import org.apache.lucene.store.Directory;
++import org.apache.solr.client.solrj.SolrServer;
++
++public class SpatialDatasetFactory
++{
++ static { JenaSystem.init(); }
++
++ /** Use an assembler file to build a dataset with spatial search capabilities */
++ public static Dataset create(String assemblerFile)
++ {
++ return (Dataset)AssemblerUtils.build(assemblerFile, SpatialVocab.spatialDataset) ;
++ }
++
++ /** Create a text-indexed dataset */
++ public static Dataset create(Dataset base, SpatialIndex textIndex)
++ {
++ DatasetGraph dsg = base.asDatasetGraph() ;
++ dsg = create(dsg, textIndex) ;
++ return DatasetFactory.wrap(dsg) ;
++ }
++
++
++ /** Create a text-indexed dataset */
++ public static DatasetGraph create(DatasetGraph dsg, SpatialIndex spatialIndex)
++ {
++ SpatialDocProducer producer = new SpatialDocProducerTriples(spatialIndex) ;
++ DatasetGraph dsgt = new DatasetGraphSpatial(dsg, spatialIndex, producer) ;
++ // Also set on dsg
++ Context c = dsgt.getContext() ;
++
++ dsgt.getContext().set(SpatialQuery.spatialIndex, spatialIndex) ;
++ return dsgt ;
++
++ }
++
++ /** Create a Lucene TextIndex */
++ public static SpatialIndex createLuceneIndex(Directory directory, EntityDefinition entMap)
++ {
++ SpatialIndex index = new SpatialIndexLucene(directory, entMap) ;
++ return index ;
++ }
++
++ /** Create a text-indexed dataset, using Lucene */
++ public static Dataset createLucene(Dataset base, Directory directory, EntityDefinition entMap)
++ {
++ SpatialIndex index = createLuceneIndex(directory, entMap) ;
++ return create(base, index) ;
++ }
++
++ /** Create a text-indexed dataset, using Lucene */
++ public static DatasetGraph createLucene(DatasetGraph base, Directory directory, EntityDefinition entMap)
++ {
++ SpatialIndex index = createLuceneIndex(directory, entMap) ;
++ return create(base, index) ;
++ }
++
++ /** Create a Solr TextIndex */
++ public static SpatialIndex createSolrIndex(SolrServer server, EntityDefinition entMap)
++ {
++ SpatialIndex index = new SpatialIndexSolr(server, entMap) ;
++ return index ;
++ }
++
++ /** Create a text-indexed dataset, using Solr */
++ public static Dataset createSolrIndex(Dataset base, SolrServer server, EntityDefinition entMap)
++ {
++ SpatialIndex index = createSolrIndex(server, entMap) ;
++ return create(base, index) ;
++ }
++
++ /** Create a text-indexed dataset, using Solr */
++ public static DatasetGraph createSolrIndex(DatasetGraph base, SolrServer server, EntityDefinition entMap)
++ {
++ SpatialIndex index = createSolrIndex(server, entMap) ;
++ return create(base, index) ;
++ }
++}
++
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexContext.java
----------------------------------------------------------------------
diff --cc jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexContext.java
index 5d25d19,5d25d19..36a6801
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexContext.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexContext.java
@@@ -1,103 -1,103 +1,103 @@@
--/*
-- * Licensed to the Apache Software Foundation (ASF) under one
-- * or more contributor license agreements. See the NOTICE file
-- * distributed with this work for additional information
-- * regarding copyright ownership. The ASF licenses this file
-- * to you under the Apache License, Version 2.0 (the
-- * "License"); you may not use this file except in compliance
-- * with the License. You may obtain a copy of the License at
-- *
-- * http://www.apache.org/licenses/LICENSE-2.0
-- *
-- * Unless required by applicable law or agreed to in writing, software
-- * distributed under the License is distributed on an "AS IS" BASIS,
-- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- * See the License for the specific language governing permissions and
-- * limitations under the License.
-- */
--
--package org.apache.jena.query.spatial;
--
--import java.util.HashMap;
--import java.util.HashSet;
--import java.util.Iterator;
--import java.util.Map;
--import java.util.Set;
--
--import org.apache.jena.atlas.logging.Log ;
--import org.apache.jena.graph.Node ;
--
--import com.spatial4j.core.shape.Shape;
--
--public class SpatialIndexContext {
--
-- private final EntityDefinition defn;
-- private final SpatialIndex indexer;
-- private final Map<String, Set<SpatialPredicatePairValue>> spatialPredicatePairValues;
--
-- public SpatialIndexContext(SpatialIndex indexer) {
-- super();
-- this.defn = indexer.getDocDef();
-- this.indexer = indexer;
-- this.spatialPredicatePairValues = new HashMap<String, Set<SpatialPredicatePairValue>>();
-- }
--
-- public void index(Node g, Node s, Node p, Node o) {
--
-- if (!o.isLiteral()) {
-- return;
-- }
--
-- String x = SpatialQueryFuncs.subjectToString(s) ;
-- Log.info(getClass(), "Subject: "+x) ;
--
-- if (defn.isSpatialPredicate(p) && SpatialValueUtil.isDecimal(o)) {
--
-- boolean isLat = defn.isLatitudePredicate(p);
--
-- SpatialPredicatePair pair = defn.getSpatialPredicatePair(p);
-- Set<SpatialPredicatePairValue> pairValues = spatialPredicatePairValues
-- .get(x);
-- if (pairValues == null) {
-- pairValues = new HashSet<SpatialPredicatePairValue>();
-- spatialPredicatePairValues.put(x, pairValues);
-- }
--
-- Iterator<SpatialPredicatePairValue> it = pairValues.iterator();
-- SpatialPredicatePairValue toRemove = null;
--
-- while (it.hasNext()) {
-- SpatialPredicatePairValue pairValue = it.next();
-- if (pairValue.getPair().equals(pair)) {
-- Double theOtherValue = pairValue.getTheOtherValue(p);
-- if (theOtherValue != null) {
-- if (isLat) {
-- indexer.add(x, SpatialQuery.ctx.makePoint(
-- theOtherValue,
-- Double.parseDouble(o.getLiteralLexicalForm())));
-- } else {
-- indexer.add(x, SpatialQuery.ctx.makePoint(Double.parseDouble(o.getLiteralLexicalForm()),
-- theOtherValue));
-- }
-- toRemove = pairValue;
-- }
-- break;
-- }
-- }
-- if (toRemove != null) {
-- pairValues.remove(toRemove);
-- return;
-- }
--
-- SpatialPredicatePairValue toAdd = new SpatialPredicatePairValue(
-- pair);
-- toAdd.setValue(p, Double.parseDouble(o.getLiteralLexicalForm()));
-- pairValues.add(toAdd);
--
-- } else if (defn.isWKTPredicate(p) && SpatialValueUtil.isWKTLiteral(o.getLiteral())) {
-- @SuppressWarnings("deprecation")
-- Shape shape = SpatialQuery.ctx.readShape(o.getLiteralLexicalForm());
-- indexer.add(x, shape);
-- }
-- }
--}
++/*
++ * Licensed to the Apache Software Foundation (ASF) under one
++ * or more contributor license agreements. See the NOTICE file
++ * distributed with this work for additional information
++ * regarding copyright ownership. The ASF licenses this file
++ * to you under the Apache License, Version 2.0 (the
++ * "License"); you may not use this file except in compliance
++ * with the License. You may obtain a copy of the License at
++ *
++ * http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++
++package org.apache.jena.query.spatial;
++
++import java.util.HashMap;
++import java.util.HashSet;
++import java.util.Iterator;
++import java.util.Map;
++import java.util.Set;
++
++import org.apache.jena.atlas.logging.Log ;
++import org.apache.jena.graph.Node ;
++
++import com.spatial4j.core.shape.Shape;
++
++public class SpatialIndexContext {
++
++ private final EntityDefinition defn;
++ private final SpatialIndex indexer;
++ private final Map<String, Set<SpatialPredicatePairValue>> spatialPredicatePairValues;
++
++ public SpatialIndexContext(SpatialIndex indexer) {
++ super();
++ this.defn = indexer.getDocDef();
++ this.indexer = indexer;
++ this.spatialPredicatePairValues = new HashMap<String, Set<SpatialPredicatePairValue>>();
++ }
++
++ public void index(Node g, Node s, Node p, Node o) {
++
++ if (!o.isLiteral()) {
++ return;
++ }
++
++ String x = SpatialQueryFuncs.subjectToString(s) ;
++ Log.info(getClass(), "Subject: "+x) ;
++
++ if (defn.isSpatialPredicate(p) && SpatialValueUtil.isDecimal(o)) {
++
++ boolean isLat = defn.isLatitudePredicate(p);
++
++ SpatialPredicatePair pair = defn.getSpatialPredicatePair(p);
++ Set<SpatialPredicatePairValue> pairValues = spatialPredicatePairValues
++ .get(x);
++ if (pairValues == null) {
++ pairValues = new HashSet<SpatialPredicatePairValue>();
++ spatialPredicatePairValues.put(x, pairValues);
++ }
++
++ Iterator<SpatialPredicatePairValue> it = pairValues.iterator();
++ SpatialPredicatePairValue toRemove = null;
++
++ while (it.hasNext()) {
++ SpatialPredicatePairValue pairValue = it.next();
++ if (pairValue.getPair().equals(pair)) {
++ Double theOtherValue = pairValue.getTheOtherValue(p);
++ if (theOtherValue != null) {
++ if (isLat) {
++ indexer.add(x, SpatialQuery.ctx.makePoint(
++ theOtherValue,
++ Double.parseDouble(o.getLiteralLexicalForm())));
++ } else {
++ indexer.add(x, SpatialQuery.ctx.makePoint(Double.parseDouble(o.getLiteralLexicalForm()),
++ theOtherValue));
++ }
++ toRemove = pairValue;
++ }
++ break;
++ }
++ }
++ if (toRemove != null) {
++ pairValues.remove(toRemove);
++ return;
++ }
++
++ SpatialPredicatePairValue toAdd = new SpatialPredicatePairValue(
++ pair);
++ toAdd.setValue(p, Double.parseDouble(o.getLiteralLexicalForm()));
++ pairValues.add(toAdd);
++
++ } else if (defn.isWKTPredicate(p) && SpatialValueUtil.isWKTLiteral(o.getLiteral())) {
++ @SuppressWarnings("deprecation")
++ Shape shape = SpatialQuery.ctx.readShape(o.getLiteralLexicalForm());
++ indexer.add(x, shape);
++ }
++ }
++}
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialPredicatePair.java
----------------------------------------------------------------------
diff --cc jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialPredicatePair.java
index 2f88e1c,2f88e1c..eedc212
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialPredicatePair.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialPredicatePair.java
@@@ -1,74 -1,74 +1,74 @@@
--/*
-- * Licensed to the Apache Software Foundation (ASF) under one
-- * or more contributor license agreements. See the NOTICE file
-- * distributed with this work for additional information
-- * regarding copyright ownership. The ASF licenses this file
-- * to you under the Apache License, Version 2.0 (the
-- * "License"); you may not use this file except in compliance
-- * with the License. You may obtain a copy of the License at
-- *
-- * http://www.apache.org/licenses/LICENSE-2.0
-- *
-- * Unless required by applicable law or agreed to in writing, software
-- * distributed under the License is distributed on an "AS IS" BASIS,
-- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- * See the License for the specific language governing permissions and
-- * limitations under the License.
-- */
--
--package org.apache.jena.query.spatial;
--
--import org.apache.jena.graph.Node ;
--
--public class SpatialPredicatePair {
--
-- private Node latitudePredicate;
-- private Node longitudePredicate;
--
-- public SpatialPredicatePair(Node latitudePredicate, Node longitudePredicate) {
-- super();
-- this.latitudePredicate = latitudePredicate;
-- this.longitudePredicate = longitudePredicate;
-- }
--
-- public Node getLatitudePredicate() {
-- return latitudePredicate;
-- }
--
-- public Node getLongitudePredicate() {
-- return longitudePredicate;
-- }
--
-- @Override
-- public int hashCode() {
-- return latitudePredicate.hashCode() * 7 + longitudePredicate.hashCode()
-- * 13;
-- }
--
-- @Override
-- public boolean equals(Object otherObject) {
-- // a quick test to see if the objects are identical
-- if (this == otherObject)
-- return true;
--
-- // must return false if the explicit parameter is null
-- if (otherObject == null)
-- return false;
--
-- // if the classes don't match, they can't be equal
-- if (getClass() != otherObject.getClass())
-- return false;
--
-- // now we know otherObject is a non-null Employee
-- SpatialPredicatePair other = (SpatialPredicatePair) otherObject;
--
-- // test whether the fields have identical values
-- return latitudePredicate.equals(other.latitudePredicate)
-- && longitudePredicate == other.longitudePredicate;
-- }
--
-- @Override
-- public String toString(){
-- return "[ " + latitudePredicate.toString() + ", " + longitudePredicate.toString() + " ]";
-- }
--}
++/*
++ * Licensed to the Apache Software Foundation (ASF) under one
++ * or more contributor license agreements. See the NOTICE file
++ * distributed with this work for additional information
++ * regarding copyright ownership. The ASF licenses this file
++ * to you under the Apache License, Version 2.0 (the
++ * "License"); you may not use this file except in compliance
++ * with the License. You may obtain a copy of the License at
++ *
++ * http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++
++package org.apache.jena.query.spatial;
++
++import org.apache.jena.graph.Node ;
++
++public class SpatialPredicatePair {
++
++ private Node latitudePredicate;
++ private Node longitudePredicate;
++
++ public SpatialPredicatePair(Node latitudePredicate, Node longitudePredicate) {
++ super();
++ this.latitudePredicate = latitudePredicate;
++ this.longitudePredicate = longitudePredicate;
++ }
++
++ public Node getLatitudePredicate() {
++ return latitudePredicate;
++ }
++
++ public Node getLongitudePredicate() {
++ return longitudePredicate;
++ }
++
++ @Override
++ public int hashCode() {
++ return latitudePredicate.hashCode() * 7 + longitudePredicate.hashCode()
++ * 13;
++ }
++
++ @Override
++ public boolean equals(Object otherObject) {
++ // a quick test to see if the objects are identical
++ if (this == otherObject)
++ return true;
++
++ // must return false if the explicit parameter is null
++ if (otherObject == null)
++ return false;
++
++ // if the classes don't match, they can't be equal
++ if (getClass() != otherObject.getClass())
++ return false;
++
++ // now we know otherObject is a non-null Employee
++ SpatialPredicatePair other = (SpatialPredicatePair) otherObject;
++
++ // test whether the fields have identical values
++ return latitudePredicate.equals(other.latitudePredicate)
++ && longitudePredicate == other.longitudePredicate;
++ }
++
++ @Override
++ public String toString(){
++ return "[ " + latitudePredicate.toString() + ", " + longitudePredicate.toString() + " ]";
++ }
++}
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialPredicatePairValue.java
----------------------------------------------------------------------
diff --cc jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialPredicatePairValue.java
index b8e1285,b8e1285..9288757
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialPredicatePairValue.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialPredicatePairValue.java
@@@ -1,109 -1,109 +1,109 @@@
--/*
-- * Licensed to the Apache Software Foundation (ASF) under one
-- * or more contributor license agreements. See the NOTICE file
-- * distributed with this work for additional information
-- * regarding copyright ownership. The ASF licenses this file
-- * to you under the Apache License, Version 2.0 (the
-- * "License"); you may not use this file except in compliance
-- * with the License. You may obtain a copy of the License at
-- *
-- * http://www.apache.org/licenses/LICENSE-2.0
-- *
-- * Unless required by applicable law or agreed to in writing, software
-- * distributed under the License is distributed on an "AS IS" BASIS,
-- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- * See the License for the specific language governing permissions and
-- * limitations under the License.
-- */
--
--package org.apache.jena.query.spatial;
--
--import org.apache.jena.graph.Node ;
--import org.slf4j.Logger;
--import org.slf4j.LoggerFactory;
--
--public class SpatialPredicatePairValue {
--
-- private static Logger log = LoggerFactory
-- .getLogger(SpatialPredicatePairValue.class);
--
-- public SpatialPredicatePairValue(SpatialPredicatePair pair) {
-- this.pair = pair;
-- }
--
-- private SpatialPredicatePair pair;
-- private Double latitudeValue;
-- private Double longitudeValue;
--
-- public Double getLatitudeValue() {
-- return latitudeValue;
-- }
--
-- public Double getLongitudeValue() {
-- return longitudeValue;
-- }
--
-- public SpatialPredicatePair getPair() {
-- return pair;
-- }
--
-- public void setValue(Node predicate, Double value) {
-- if (predicate.equals(pair.getLatitudePredicate())) {
-- this.latitudeValue = value;
-- } else if (predicate.equals(pair.getLongitudePredicate())) {
-- this.longitudeValue = value;
-- } else {
-- log.warn("Try to set value to a SpatialPredicatePairValue with no such predicate: "
-- + predicate + " :: " + value);
-- }
--
-- }
--
-- public Double getTheOtherValue(Node predicate) {
-- if (pair.getLatitudePredicate().equals(predicate)) {
-- return this.getLongitudeValue();
-- } else if (predicate.equals(pair.getLongitudePredicate())) {
-- return this.getLatitudeValue();
-- } else {
-- log.warn("Try to get value to a SpatialPredicatePairValue with no such predicate: "
-- + predicate);
-- return null;
-- }
-- }
--
-- @Override
-- public int hashCode() {
-- int latitudeHashCode = latitudeValue == null ? 0 : latitudeValue
-- .hashCode() * 17;
-- int longitudeHashCode = longitudeValue == null ? 0 : longitudeValue
-- .hashCode() * 19;
-- return pair.hashCode() * 11 + latitudeHashCode + longitudeHashCode;
-- }
--
-- @Override
-- public boolean equals(Object otherObject) {
-- // a quick test to see if the objects are identical
-- if (this == otherObject)
-- return true;
--
-- // must return false if the explicit parameter is null
-- if (otherObject == null)
-- return false;
--
-- // if the classes don't match, they can't be equal
-- if (getClass() != otherObject.getClass())
-- return false;
--
-- // now we know otherObject is a non-null Employee
-- SpatialPredicatePairValue other = (SpatialPredicatePairValue) otherObject;
--
-- boolean latitudeValueEquals = this.latitudeValue == null ? other.latitudeValue == null
-- : this.latitudeValue.equals(other.latitudeValue);
-- boolean longitudeValueEquals = this.longitudeValue == null ? other.longitudeValue == null
-- : this.longitudeValue.equals(other.longitudeValue);
--
-- // test whether the fields have identical values
-- return pair.equals(other.pair) && latitudeValueEquals
-- && longitudeValueEquals;
-- }
--}
++/*
++ * Licensed to the Apache Software Foundation (ASF) under one
++ * or more contributor license agreements. See the NOTICE file
++ * distributed with this work for additional information
++ * regarding copyright ownership. The ASF licenses this file
++ * to you under the Apache License, Version 2.0 (the
++ * "License"); you may not use this file except in compliance
++ * with the License. You may obtain a copy of the License at
++ *
++ * http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++
++package org.apache.jena.query.spatial;
++
++import org.apache.jena.graph.Node ;
++import org.slf4j.Logger;
++import org.slf4j.LoggerFactory;
++
++public class SpatialPredicatePairValue {
++
++ private static Logger log = LoggerFactory
++ .getLogger(SpatialPredicatePairValue.class);
++
++ public SpatialPredicatePairValue(SpatialPredicatePair pair) {
++ this.pair = pair;
++ }
++
++ private SpatialPredicatePair pair;
++ private Double latitudeValue;
++ private Double longitudeValue;
++
++ public Double getLatitudeValue() {
++ return latitudeValue;
++ }
++
++ public Double getLongitudeValue() {
++ return longitudeValue;
++ }
++
++ public SpatialPredicatePair getPair() {
++ return pair;
++ }
++
++ public void setValue(Node predicate, Double value) {
++ if (predicate.equals(pair.getLatitudePredicate())) {
++ this.latitudeValue = value;
++ } else if (predicate.equals(pair.getLongitudePredicate())) {
++ this.longitudeValue = value;
++ } else {
++ log.warn("Try to set value to a SpatialPredicatePairValue with no such predicate: "
++ + predicate + " :: " + value);
++ }
++
++ }
++
++ public Double getTheOtherValue(Node predicate) {
++ if (pair.getLatitudePredicate().equals(predicate)) {
++ return this.getLongitudeValue();
++ } else if (predicate.equals(pair.getLongitudePredicate())) {
++ return this.getLatitudeValue();
++ } else {
++ log.warn("Try to get value to a SpatialPredicatePairValue with no such predicate: "
++ + predicate);
++ return null;
++ }
++ }
++
++ @Override
++ public int hashCode() {
++ int latitudeHashCode = latitudeValue == null ? 0 : latitudeValue
++ .hashCode() * 17;
++ int longitudeHashCode = longitudeValue == null ? 0 : longitudeValue
++ .hashCode() * 19;
++ return pair.hashCode() * 11 + latitudeHashCode + longitudeHashCode;
++ }
++
++ @Override
++ public boolean equals(Object otherObject) {
++ // a quick test to see if the objects are identical
++ if (this == otherObject)
++ return true;
++
++ // must return false if the explicit parameter is null
++ if (otherObject == null)
++ return false;
++
++ // if the classes don't match, they can't be equal
++ if (getClass() != otherObject.getClass())
++ return false;
++
++ // now we know otherObject is a non-null Employee
++ SpatialPredicatePairValue other = (SpatialPredicatePairValue) otherObject;
++
++ boolean latitudeValueEquals = this.latitudeValue == null ? other.latitudeValue == null
++ : this.latitudeValue.equals(other.latitudeValue);
++ boolean longitudeValueEquals = this.longitudeValue == null ? other.longitudeValue == null
++ : this.longitudeValue.equals(other.longitudeValue);
++
++ // test whether the fields have identical values
++ return pair.equals(other.pair) && latitudeValueEquals
++ && longitudeValueEquals;
++ }
++}
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialValueUtil.java
----------------------------------------------------------------------
diff --cc jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialValueUtil.java
index 3996f36,3996f36..e30d8ee
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialValueUtil.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialValueUtil.java
@@@ -1,60 -1,60 +1,60 @@@
--/*
-- * Licensed to the Apache Software Foundation (ASF) under one
-- * or more contributor license agreements. See the NOTICE file
-- * distributed with this work for additional information
-- * regarding copyright ownership. The ASF licenses this file
-- * to you under the Apache License, Version 2.0 (the
-- * "License"); you may not use this file except in compliance
-- * with the License. You may obtain a copy of the License at
-- *
-- * http://www.apache.org/licenses/LICENSE-2.0
-- *
-- * Unless required by applicable law or agreed to in writing, software
-- * distributed under the License is distributed on an "AS IS" BASIS,
-- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- * See the License for the specific language governing permissions and
-- * limitations under the License.
-- */
--
--package org.apache.jena.query.spatial;
--
--import org.apache.jena.datatypes.RDFDatatype ;
--import org.apache.jena.datatypes.xsd.XSDDatatype ;
--import org.apache.jena.graph.Node ;
--import org.apache.jena.graph.impl.LiteralLabel ;
--import org.apache.jena.sparql.util.NodeUtils ;
--
--public class SpatialValueUtil {
--
-- /** Does the LiteralLabel look like a decimal?
-- * (Maybe a string - if so, OK if it parses as a decimal)
-- */
-- public static boolean isDecimal(Node n) {
-- if ( NodeUtils.isSimpleString(n) || NodeUtils.isLangString(n) ) {
-- try {
-- Double.parseDouble(n.getLiteralLexicalForm()) ;
-- return true;
-- } catch (NumberFormatException e) {
-- return false;
-- }
-- }
--
-- RDFDatatype dtype = n.getLiteralDatatype();
-- if ((dtype.equals(XSDDatatype.XSDfloat))
-- || (dtype.equals(XSDDatatype.XSDdecimal))
-- || (dtype.equals(XSDDatatype.XSDdouble) || (dtype
-- .equals(XSDDatatype.XSDinteger))))
-- return true;
-- return false;
-- }
--
-- public static boolean isWKTLiteral(LiteralLabel literal) {
-- RDFDatatype dtype = literal.getDatatype();
-- if (dtype == null)
-- return false;
-- if (dtype.getURI().equals(
-- EntityDefinition.geosparql_wktLiteral.getURI()))
-- return true;
-- return false;
-- }
--}
++/*
++ * Licensed to the Apache Software Foundation (ASF) under one
++ * or more contributor license agreements. See the NOTICE file
++ * distributed with this work for additional information
++ * regarding copyright ownership. The ASF licenses this file
++ * to you under the Apache License, Version 2.0 (the
++ * "License"); you may not use this file except in compliance
++ * with the License. You may obtain a copy of the License at
++ *
++ * http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++
++package org.apache.jena.query.spatial;
++
++import org.apache.jena.datatypes.RDFDatatype ;
++import org.apache.jena.datatypes.xsd.XSDDatatype ;
++import org.apache.jena.graph.Node ;
++import org.apache.jena.graph.impl.LiteralLabel ;
++import org.apache.jena.sparql.util.NodeUtils ;
++
++public class SpatialValueUtil {
++
++ /** Does the LiteralLabel look like a decimal?
++ * (Maybe a string - if so, OK if it parses as a decimal)
++ */
++ public static boolean isDecimal(Node n) {
++ if ( NodeUtils.isSimpleString(n) || NodeUtils.isLangString(n) ) {
++ try {
++ Double.parseDouble(n.getLiteralLexicalForm()) ;
++ return true;
++ } catch (NumberFormatException e) {
++ return false;
++ }
++ }
++
++ RDFDatatype dtype = n.getLiteralDatatype();
++ if ((dtype.equals(XSDDatatype.XSDfloat))
++ || (dtype.equals(XSDDatatype.XSDdecimal))
++ || (dtype.equals(XSDDatatype.XSDdouble) || (dtype
++ .equals(XSDDatatype.XSDinteger))))
++ return true;
++ return false;
++ }
++
++ public static boolean isWKTLiteral(LiteralLabel literal) {
++ RDFDatatype dtype = literal.getDatatype();
++ if (dtype == null)
++ return false;
++ if (dtype.getURI().equals(
++ EntityDefinition.geosparql_wktLiteral.getURI()))
++ return true;
++ return false;
++ }
++}