001/** 002 * Copyright (c) 2011, The University of Southampton and the individual contributors. 003 * All rights reserved. 004 * 005 * Redistribution and use in source and binary forms, with or without modification, 006 * are permitted provided that the following conditions are met: 007 * 008 * * Redistributions of source code must retain the above copyright notice, 009 * this list of conditions and the following disclaimer. 010 * 011 * * Redistributions in binary form must reproduce the above copyright notice, 012 * this list of conditions and the following disclaimer in the documentation 013 * and/or other materials provided with the distribution. 014 * 015 * * Neither the name of the University of Southampton nor the names of its 016 * contributors may be used to endorse or promote products derived from this 017 * software without specific prior written permission. 018 * 019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 020 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 021 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 022 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 023 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 026 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 028 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 029 */ 030package org.openimaj.rdf.utils; 031 032import org.apache.jena.query.ParameterizedSparqlString; 033import org.apache.jena.rdf.model.Model; 034import org.apache.jena.rdf.model.Resource; 035 036/** 037 * Some tools for playing with {@link ParameterizedSparqlString} instances 038 * 039 * @author Sina Samangooei (ss@ecs.soton.ac.uk) 040 */ 041public class PQUtils { 042 043 /** 044 * Set a {@link ParameterizedSparqlString} literal 045 * 046 * @param pss 047 * @param strings 048 * @param geo 049 */ 050 public static void setPSSLiteral(ParameterizedSparqlString pss, String[] strings, double[] geo) { 051 for (int i = 0; i < strings.length; i++) { 052 // if (geo == null) { 053 // setNull(pss, strings[i]); 054 // } else { 055 pss.setLiteral(strings[i], geo[i]); 056 // } 057 } 058 } 059 060 // /** 061 // * Set a {@link ParameterizedSparqlString} null 062 // * 063 // * @param pss 064 // * @param name 065 // */ 066 // public static void setNull(ParameterizedSparqlString pss, String name) { 067 // pss.setLiteral(name, nul); 068 // } 069 070 /** 071 * Set a {@link ParameterizedSparqlString} literal 072 * 073 * @param pss 074 * @param name 075 * @param d 076 */ 077 public static void setPSSLiteral(ParameterizedSparqlString pss, String name, double d) { 078 pss.setLiteral(name, d); 079 } 080 081 /** 082 * Set a {@link ParameterizedSparqlString} literal 083 * 084 * @param pss 085 * @param name 086 * @param d 087 */ 088 public static void setPSSLiteral(ParameterizedSparqlString pss, String name, int d) { 089 pss.setLiteral(name, d); 090 } 091 092 /** 093 * Set a {@link ParameterizedSparqlString} literal 094 * 095 * @param pss 096 * @param name 097 * @param lit 098 */ 099 public static void setPSSLiteral(ParameterizedSparqlString pss, String name, String lit) { 100 // if (lit != null) 101 pss.setLiteral(name, lit); 102 // else 103 // setNull(pss, name); 104 105 } 106 107 /** 108 * @param pss 109 * @param name 110 * @param iri 111 */ 112 public static void setPSSIri(ParameterizedSparqlString pss, String name, String iri) { 113 // if (iri != null) 114 pss.setIri(name, iri); 115 // else 116 // setNull(pss, name); 117 } 118 119 /** 120 * @param pss 121 * @param name 122 * @param iri 123 */ 124 public static void setPSSResource(ParameterizedSparqlString pss, String name, Resource iri) { 125 // if (iri != null) 126 pss.setParam(name, iri); 127 // else 128 // setNull(pss, name); 129 } 130 131 /** 132 * Construct a {@link ParameterizedSparqlString} 133 * 134 * @param query 135 * @param m 136 * @return the {@link ParameterizedSparqlString} 137 */ 138 public static ParameterizedSparqlString constructPQ(String query, Model m) { 139 final ParameterizedSparqlString pss = new ParameterizedSparqlString(query, m); 140 return pss; 141 } 142}