public class ParameterizedSparqlString extends Object implements PrefixMapping
Any variable in the command may have a value injected to it, injecting a value replaces all usages of that variable in the command i.e. substitutes the variable for a constant, injection is done by textual substitution. Additionally you may use this purely as a StringBuffer
replacement for creating queries since it provides a large variety of convenience methods for appending things either as-is or as nodes (which causes appropriate formatting to be applied).
The intended usage of this is where using a QuerySolutionMap
as initial bindings is either inappropriate or not possible e.g.
This class is useful for preparing both queries and updates hence the generic name as it provides programmatic ways to replace variables in the query with constants and to add prefix and base declarations. A Query
or UpdateRequest
can be created using the asQuery()
and asUpdate()
methods assuming the command an instance represents is actually valid as a query/update.
Query
or UpdateRequest
.PrefixMapping.Factory, PrefixMapping.IllegalPrefixException, PrefixMapping.JenaLockedException
Extended, Standard
Constructor and Description |
---|
ParameterizedSparqlString()
Creates a new parameterized string with an empty command text
|
ParameterizedSparqlString(PrefixMapping prefixes)
Creates a new parameterized string
|
ParameterizedSparqlString(QuerySolutionMap map)
Creates a new parameterized string
|
ParameterizedSparqlString(QuerySolutionMap map,
PrefixMapping prefixes)
Creates a new parameterized string
|
ParameterizedSparqlString(String command)
Creates a new parameterized string
|
ParameterizedSparqlString(String command,
PrefixMapping prefixes)
Creates a new parameterized string
|
ParameterizedSparqlString(String command,
QuerySolutionMap map)
Creates a new parameterized string
|
ParameterizedSparqlString(String command,
QuerySolutionMap map,
PrefixMapping prefixes)
Creates a new parameterized string
|
ParameterizedSparqlString(String command,
QuerySolutionMap map,
String base)
Creates a new parameterized string
|
ParameterizedSparqlString(String command,
QuerySolutionMap map,
String base,
PrefixMapping prefixes)
Creates a new parameterized string
|
ParameterizedSparqlString(String command,
String base)
Creates a new parameterized string
|
ParameterizedSparqlString(String command,
String base,
PrefixMapping prefixes)
Creates a new parameterized string
|
Modifier and Type | Method and Description |
---|---|
void |
append(boolean b)
Appends a boolean as-is to the existing command text, to ensure correct formatting when used as a constant consider using the
appendLiteral(boolean) method |
void |
append(char c)
Appends a character to the existing command text
|
void |
append(double d)
Appends a double as-is to the existing command text, to ensure correct formatting when used as a constant consider using the
appendLiteral(double) method |
void |
append(float f)
Appends a float as-is to the existing command text, to ensure correct formatting when used as a constant consider using the
appendLiteral(float) method |
void |
append(int i)
Appends an integer as-is to the existing command text, to ensure correct formatting when used as a constant consider using the
appendLiteral(int) method |
void |
append(long l)
Appends a long as-is to the existing command text, to ensure correct formatting when used as a constant consider using the
appendLiteral(long) method |
void |
append(Object obj)
Appends an object to the existing command text
|
void |
append(String text)
Appends some text to the existing command text
|
void |
appendIri(org.apache.jena.iri.IRI iri)
Appends an IRI to the command text as a constant using appropriate formatting
|
void |
appendIri(String uri)
Appends a URI to the command text as a constant using appropriate formatting
|
void |
appendLiteral(boolean b)
Appends a boolean to the command text as a constant using appropriate formatting
|
void |
appendLiteral(Calendar dt)
Appends a date time to the command text as a constant using appropriate formatting
|
void |
appendLiteral(double d)
Appends a double to the command text as a constant using appropriate formatting
|
void |
appendLiteral(float f)
Appends a float to the command text as a constant using appropriate formatting
|
void |
appendLiteral(int i)
Appends an integer to the command text as a constant using appropriate formatting
|
void |
appendLiteral(long l)
Appends a long to the command text as a constant using appropriate formatting
|
void |
appendLiteral(String value)
Appends a simple literal as a constant using appropriate formatting
|
void |
appendLiteral(String value,
RDFDatatype datatype)
Appends a Typed Literal to the command text as a constant using appropriate formatting
|
void |
appendLiteral(String value,
String lang)
Appends a literal with a lexical value and language to the command text as a constant using appropriate formatting
|
void |
appendNode(Node n)
Appends a Node to the command text as a constant using appropriate formatting
|
void |
appendNode(RDFNode n)
Appends a Node to the command text as a constant using appropriate formatting
|
Query |
asQuery()
Attempts to take the command text with parameters injected from the
toString() method and parse it as a Query |
UpdateRequest |
asUpdate()
Attempts to take the command text with parameters injected from the
toString() method and parse it as a UpdateRequest |
void |
clearParam(String var)
Clears the value for a parameter so the given variable will not have a value injected
|
void |
clearParams()
Clears all values
|
ParameterizedSparqlString |
copy()
Makes a full copy of this parameterized string
|
ParameterizedSparqlString |
copy(boolean copyParams)
Makes a copy of the command text, base URI and prefix mapping and optionally copies parameter values
|
ParameterizedSparqlString |
copy(boolean copyParams,
boolean copyBase,
boolean copyPrefixes)
Makes a copy of the command text and optionally copies other aspects
|
String |
expandPrefix(String prefixed) |
String |
getBaseUri()
Gets the Base URI which will be prepended to a query
|
String |
getCommandText()
Gets the basic Command Text
|
Map<String,String> |
getNsPrefixMap() |
String |
getNsPrefixURI(String prefix) |
String |
getNsURIPrefix(String uri) |
Node |
getParam(String var)
Gets the current value for a parameter
|
Iterator<String> |
getVars()
Gets the variables which are currently treated as parameters (i.e.
|
PrefixMapping |
lock() |
String |
qnameFor(String uri) |
PrefixMapping |
removeNsPrefix(String prefix) |
boolean |
samePrefixMappingAs(PrefixMapping other) |
void |
setBaseUri(String base)
Sets the Base URI which will be prepended to the query/update
|
void |
setCommandText(String command)
Sets the command text, overwriting any existing command text.
|
void |
setIri(String var,
org.apache.jena.iri.IRI iri)
Sets a Parameter to an IRI
|
void |
setIri(String var,
String iri)
Sets a Parameter to an IRI
|
void |
setIri(String var,
URL url)
Sets a Parameter to an IRI
|
void |
setLiteral(String var,
boolean value)
Sets a Parameter to a boolean literal
|
void |
setLiteral(String var,
Calendar dt)
Sets a Parameter to a date time literal
|
void |
setLiteral(String var,
double d)
Sets a Parameter to a double literal
|
void |
setLiteral(String var,
float f)
Sets a Parameter to a float literal
|
void |
setLiteral(String var,
int i)
Sets a Parameter to an integer literal
|
void |
setLiteral(String var,
Literal lit)
Sets a Parameter to a Literal
|
void |
setLiteral(String var,
long l)
Sets a Parameter to an integer literal
|
void |
setLiteral(String var,
String value)
Seta a Parameter to a literal
|
void |
setLiteral(String var,
String value,
RDFDatatype datatype)
Sets a Parameter to a typed literal
|
void |
setLiteral(String var,
String value,
String lang)
Sets a Parameter to a literal with a language
|
PrefixMapping |
setNsPrefix(String prefix,
String uri) |
PrefixMapping |
setNsPrefixes(Map<String,String> map) |
PrefixMapping |
setNsPrefixes(PrefixMapping other) |
void |
setParam(String var,
Node n)
Sets a Parameter
|
void |
setParam(String var,
RDFNode n)
Sets a Parameter
|
void |
setParams(QuerySolutionMap map)
Sets the Parameters
|
String |
shortForm(String uri) |
String |
toString()
The toString() method is where the actual magic happens, the original command text is always preserved and we just generated a temporary command string by inserting the defined namespace prefixes at the start of the command and injecting the set parameters into a copy of that base string and return the resulting command.
|
PrefixMapping |
withDefaultMappings(PrefixMapping map) |
public ParameterizedSparqlString(String command, QuerySolutionMap map, String base, PrefixMapping prefixes)
command
- Raw Command Textmap
- Initial Parameters to injectbase
- Base URIprefixes
- Prefix Mappingpublic ParameterizedSparqlString(String command, QuerySolutionMap map, String base)
command
- Raw Command Textmap
- Initial Parameters to injectbase
- Base URIpublic ParameterizedSparqlString(String command, QuerySolutionMap map, PrefixMapping prefixes)
command
- Raw Command Textmap
- Initial Parameters to injectprefixes
- Prefix Mappingpublic ParameterizedSparqlString(String command, QuerySolutionMap map)
command
- Raw Command Textmap
- Initial Parameters to injectpublic ParameterizedSparqlString(String command, String base, PrefixMapping prefixes)
command
- Raw Command Textbase
- Base URIprefixes
- Prefix Mappingpublic ParameterizedSparqlString(String command, PrefixMapping prefixes)
command
- Raw Command Textprefixes
- Prefix Mappingpublic ParameterizedSparqlString(String command, String base)
command
- Raw Command Textbase
- Base URIpublic ParameterizedSparqlString(String command)
command
- Raw Command Textpublic ParameterizedSparqlString(QuerySolutionMap map, PrefixMapping prefixes)
map
- Initial Parameters to injectprefixes
- Prefix Mappingpublic ParameterizedSparqlString(QuerySolutionMap map)
map
- Initial Parameters to injectpublic ParameterizedSparqlString(PrefixMapping prefixes)
prefixes
- Prefix Mappingpublic ParameterizedSparqlString()
public void setCommandText(String command)
append(String)
, appendIri(String)
, appendLiteral(String)
or appendNode(Node)
methods insteadpublic void append(String text)
text
- Text to appendpublic void append(char c)
c
- Character to appendpublic void append(boolean b)
appendLiteral(boolean)
methodb
- Boolean to appendpublic void append(double d)
appendLiteral(double)
methodd
- Double to appendpublic void append(float f)
appendLiteral(float)
methodf
- Float to appendpublic void append(int i)
appendLiteral(int)
methodi
- Integer to appendpublic void append(long l)
appendLiteral(long)
methodl
- Long to appendpublic void append(Object obj)
obj
- Object to appendpublic void appendNode(Node n)
n
- Node to appendpublic void appendNode(RDFNode n)
n
- Node to appendpublic void appendIri(String uri)
uri
- URI to appendpublic void appendIri(org.apache.jena.iri.IRI iri)
iri
- IRI to appendpublic void appendLiteral(String value)
value
- Lexical Valuepublic void appendLiteral(String value, String lang)
value
- Lexical Valuelang
- Languagepublic void appendLiteral(String value, RDFDatatype datatype)
value
- Lexical Valuedatatype
- Datatypepublic void appendLiteral(boolean b)
b
- Boolean to appendpublic void appendLiteral(int i)
i
- Integer to appendpublic void appendLiteral(long l)
l
- Long to appendpublic void appendLiteral(float f)
f
- Float to appendpublic void appendLiteral(double d)
d
- Double to appendpublic void appendLiteral(Calendar dt)
dt
- Date Time to appendpublic String getCommandText()
Note: This will not reflect any injected parameters, to see the command with injected parameters invoke the toString()
method
public void setBaseUri(String base)
public String getBaseUri()
public void setParams(QuerySolutionMap map)
map
- Parameterspublic void setParam(String var, Node n)
var
- Variablen
- Value
Setting a parameter to null is equivalent to calling clearParam(String)
for the given variable
public void setParam(String var, RDFNode n)
var
- Variablen
- Value
Setting a parameter to null is equivalent to calling clearParam(String)
for the given variable
public void setIri(String var, String iri)
var
- Variableiri
- IRI
Setting a parameter to null is equivalent to calling clearParam(String)
for the given variable
public void setIri(String var, org.apache.jena.iri.IRI iri)
var
- Variableiri
- IRI
Setting a parameter to null is equivalent to calling clearParam(String)
for the given variable
public void setIri(String var, URL url)
var
- Variableurl
- URL used as IRI
Setting a parameter to null is equivalent to calling clearParam(String)
for the given variable
public void setLiteral(String var, Literal lit)
var
- Variablelit
- Value
Setting a parameter to null is equivalent to calling clearParam(String)
for the given variable
public void setLiteral(String var, String value)
var
- Variablevalue
- Lexical Value
Setting a parameter to null is equivalent to calling clearParam(String)
for the given variable
public void setLiteral(String var, String value, String lang)
var
- Variablevalue
- Lexical Valuelang
- Language
Setting a parameter to null is equivalent to calling clearParam(String)
for the given variable
public void setLiteral(String var, String value, RDFDatatype datatype)
var
- Variablevalue
- Lexical Valuedatatype
- Datatype
Setting a parameter to null is equivalent to calling clearParam(String)
for the given variable
public void setLiteral(String var, boolean value)
var
- a variable, by name.value
- booleanpublic void setLiteral(String var, int i)
var
- Variablei
- Integer Valuepublic void setLiteral(String var, long l)
var
- Variablel
- Integer Valuepublic void setLiteral(String var, float f)
var
- Variablef
- Float valuepublic void setLiteral(String var, double d)
var
- Variabled
- Double valuepublic void setLiteral(String var, Calendar dt)
var
- Variabledt
- Date Time valuepublic Node getParam(String var)
var
- Variablepublic Iterator<String> getVars()
public void clearParam(String var)
var
- Variablepublic void clearParams()
public String toString()
This class makes no guarantees about the validity of the returned string for use as a SPARQL Query or Update, for example if a parameter was injected which was mentioned in the SELECT variables list you'd have a syntax error when you try to parse the query
public Query asQuery() throws QueryException
toString()
method and parse it as a Query
QueryException
- Thrown if the command text does not parsepublic UpdateRequest asUpdate()
toString()
method and parse it as a UpdateRequest
public ParameterizedSparqlString copy()
public ParameterizedSparqlString copy(boolean copyParams)
copyParams
- Whether to copy parameterspublic ParameterizedSparqlString copy(boolean copyParams, boolean copyBase, boolean copyPrefixes)
copyParams
- Whether to copy parameterscopyBase
- Whether to copy the Base URIcopyPrefixes
- Whether to copy the prefix mappingspublic PrefixMapping setNsPrefix(String prefix, String uri)
setNsPrefix
in interface PrefixMapping
public PrefixMapping removeNsPrefix(String prefix)
removeNsPrefix
in interface PrefixMapping
public PrefixMapping setNsPrefixes(PrefixMapping other)
setNsPrefixes
in interface PrefixMapping
public PrefixMapping setNsPrefixes(Map<String,String> map)
setNsPrefixes
in interface PrefixMapping
public PrefixMapping withDefaultMappings(PrefixMapping map)
withDefaultMappings
in interface PrefixMapping
public String getNsPrefixURI(String prefix)
getNsPrefixURI
in interface PrefixMapping
public String getNsURIPrefix(String uri)
getNsURIPrefix
in interface PrefixMapping
public Map<String,String> getNsPrefixMap()
getNsPrefixMap
in interface PrefixMapping
public String expandPrefix(String prefixed)
expandPrefix
in interface PrefixMapping
public String shortForm(String uri)
shortForm
in interface PrefixMapping
public String qnameFor(String uri)
qnameFor
in interface PrefixMapping
public PrefixMapping lock()
lock
in interface PrefixMapping
public boolean samePrefixMappingAs(PrefixMapping other)
samePrefixMappingAs
in interface PrefixMapping
Licenced under the Apache License, Version 2.0