http://git-wip-us.apache.org/repos/asf/jena/blob/3d70d735/jena-fuseki1/pages/books.ttl ---------------------------------------------------------------------- diff --git a/jena-fuseki1/pages/books.ttl b/jena-fuseki1/pages/books.ttl index 0554449..eeeadb6 100644 --- a/jena-fuseki1/pages/books.ttl +++ b/jena-fuseki1/pages/books.ttl @@ -1,47 +1,47 @@ -# Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0 -@prefix dc: <http://purl.org/dc/elements/1.1/> . -@prefix vcard: <http://www.w3.org/2001/vcard-rdf/3.0#> . -@prefix ns: <http://example.org/ns#> . - -@prefix : <http://example.org/book/> . - -# A small dataset for usage examples of Fuseki -# This data is intentionaly irregular (e.g. different ways to -# record the book creator) as if the information is either an -# aggregation or was created at different times. - -:book1 - dc:title "Harry Potter and the Philosopher's Stone" ; - dc:creator "J.K. Rowling" ; - . - -:book2 - dc:title "Harry Potter and the Chamber of Secrets" ; - dc:creator _:a . - -:book3 - dc:title "Harry Potter and the Prisoner Of Azkaban" ; - dc:creator _:a . - -:book4 - dc:title "Harry Potter and the Goblet of Fire" . - -:book5 - dc:title "Harry Potter and the Order of the Phoenix"; - dc:creator "J.K. Rowling" ; - . - -:book6 - dc:title "Harry Potter and the Half-Blood Prince"; - dc:creator "J.K. Rowling" . - -:book7 - dc:title "Harry Potter and the Deathly Hallows" ; - dc:creator "J.K. Rowling" . -_:a - vcard:FN "J.K. Rowling" ; - vcard:N - [ vcard:Family "Rowling" ; - vcard:Given "Joanna" - ] - . +# Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0 +@prefix dc: <http://purl.org/dc/elements/1.1/> . +@prefix vcard: <http://www.w3.org/2001/vcard-rdf/3.0#> . +@prefix ns: <http://example.org/ns#> . + +@prefix : <http://example.org/book/> . + +# A small dataset for usage examples of Fuseki +# This data is intentionaly irregular (e.g. different ways to +# record the book creator) as if the information is either an +# aggregation or was created at different times. + +:book1 + dc:title "Harry Potter and the Philosopher's Stone" ; + dc:creator "J.K. Rowling" ; + . + +:book2 + dc:title "Harry Potter and the Chamber of Secrets" ; + dc:creator _:a . + +:book3 + dc:title "Harry Potter and the Prisoner Of Azkaban" ; + dc:creator _:a . + +:book4 + dc:title "Harry Potter and the Goblet of Fire" . + +:book5 + dc:title "Harry Potter and the Order of the Phoenix"; + dc:creator "J.K. Rowling" ; + . + +:book6 + dc:title "Harry Potter and the Half-Blood Prince"; + dc:creator "J.K. Rowling" . + +:book7 + dc:title "Harry Potter and the Deathly Hallows" ; + dc:creator "J.K. Rowling" . +_:a + vcard:FN "J.K. Rowling" ; + vcard:N + [ vcard:Family "Rowling" ; + vcard:Given "Joanna" + ] + .
http://git-wip-us.apache.org/repos/asf/jena/blob/3d70d735/jena-fuseki1/src/test/java/org/apache/jena/fuseki/http/TestDatasetGraphAccessorHTTP.java ---------------------------------------------------------------------- diff --git a/jena-fuseki1/src/test/java/org/apache/jena/fuseki/http/TestDatasetGraphAccessorHTTP.java b/jena-fuseki1/src/test/java/org/apache/jena/fuseki/http/TestDatasetGraphAccessorHTTP.java index 2b45d2b..7687b2c 100644 --- a/jena-fuseki1/src/test/java/org/apache/jena/fuseki/http/TestDatasetGraphAccessorHTTP.java +++ b/jena-fuseki1/src/test/java/org/apache/jena/fuseki/http/TestDatasetGraphAccessorHTTP.java @@ -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 @@ import org.apache.jena.web.DatasetGraphAccessorHTTP ; 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.serviceREST) ; - } + } + + + @Override + protected DatasetGraphAccessor getDatasetUpdater() + { + return new DatasetGraphAccessorHTTP(ServerTest.serviceREST) ; + } } http://git-wip-us.apache.org/repos/asf/jena/blob/3d70d735/jena-fuseki2/jena-fuseki-core/src/main/webapp/js/lib/sprintf-0.7-beta1.js ---------------------------------------------------------------------- diff --git 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 index 96d3131..0e8d02c 100644 --- 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 @@ -/** -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/3d70d735/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestDatasetGraphAccessorHTTP.java ---------------------------------------------------------------------- diff --git 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 index 590083d..964511f 100644 --- 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 @@ * 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 @@ import org.apache.jena.web.DatasetGraphAccessorHTTP ; 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/3d70d735/jena-maven-tools/src/test/java/org/apache/jena/tools/schemagen/SchemagenMojoTest.java ---------------------------------------------------------------------- diff --git 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 index 8df6faf..132010a 100644 --- 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 @@ -/** - * 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/3d70d735/jena-sdb/Data/data.ttl ---------------------------------------------------------------------- diff --git a/jena-sdb/Data/data.ttl b/jena-sdb/Data/data.ttl index 42217da..423ea6d 100644 --- a/jena-sdb/Data/data.ttl +++ b/jena-sdb/Data/data.ttl @@ -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/3d70d735/jena-sdb/Data/data2.ttl ---------------------------------------------------------------------- diff --git a/jena-sdb/Data/data2.ttl b/jena-sdb/Data/data2.ttl index 08194b6..b570f9d 100644 --- a/jena-sdb/Data/data2.ttl +++ b/jena-sdb/Data/data2.ttl @@ -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 α" . +# 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 α" . http://git-wip-us.apache.org/repos/asf/jena/blob/3d70d735/jena-sdb/Reports/explain.rb ---------------------------------------------------------------------- diff --git a/jena-sdb/Reports/explain.rb b/jena-sdb/Reports/explain.rb index 1ae3b30..49004be 100644 --- a/jena-sdb/Reports/explain.rb +++ b/jena-sdb/Reports/explain.rb @@ -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/3d70d735/jena-sdb/Reports/format.rb ---------------------------------------------------------------------- diff --git a/jena-sdb/Reports/format.rb b/jena-sdb/Reports/format.rb index acc5b0c..682710e 100644 --- a/jena-sdb/Reports/format.rb +++ b/jena-sdb/Reports/format.rb @@ -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/3d70d735/jena-sdb/Reports/jdbc.rb ---------------------------------------------------------------------- diff --git a/jena-sdb/Reports/jdbc.rb b/jena-sdb/Reports/jdbc.rb index 8b84f9a..f90a16c 100644 --- a/jena-sdb/Reports/jdbc.rb +++ b/jena-sdb/Reports/jdbc.rb @@ -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/3d70d735/jena-sdb/bin2/sdbscript ---------------------------------------------------------------------- diff --git a/jena-sdb/bin2/sdbscript b/jena-sdb/bin2/sdbscript index 82b1692..0b20a3b 100755 --- a/jena-sdb/bin2/sdbscript +++ b/jena-sdb/bin2/sdbscript @@ -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" "$@" \ No newline at end of file http://git-wip-us.apache.org/repos/asf/jena/blob/3d70d735/jena-sdb/src/main/resources/org/apache/jena/sdb/sdb-properties.xml ---------------------------------------------------------------------- diff --git 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 index b33d25b..bca78a9 100644 --- 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 @@ -<?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/3d70d735/jena-spatial/src/main/java/org/apache/jena/query/spatial/DistanceUnitsUtils.java ---------------------------------------------------------------------- diff --git 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 index 1cd19de..d201f3b 100644 --- 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 @@ -/* - * 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/3d70d735/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialDatasetFactory.java ---------------------------------------------------------------------- diff --git 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 index 1c919f6..9d0c8d5 100644 --- 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 @@ -/* - * 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/3d70d735/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexContext.java ---------------------------------------------------------------------- diff --git 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 index 36a6801..5d25d19 100644 --- 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 @@ -/* - * 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/3d70d735/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialPredicatePair.java ---------------------------------------------------------------------- diff --git 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 index eedc212..2f88e1c 100644 --- 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 @@ -/* - * 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/3d70d735/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialPredicatePairValue.java ---------------------------------------------------------------------- diff --git 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 index 9288757..b8e1285 100644 --- 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 @@ -/* - * 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/3d70d735/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialValueUtil.java ---------------------------------------------------------------------- diff --git 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 index e30d8ee..3996f36 100644 --- 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 @@ -/* - * 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; + } +}
