Class PrefixDeclarations
java.lang.Object
org.eclipse.rdf4j.sparqlbuilder.core.QueryElementCollection<Prefix>
org.eclipse.rdf4j.sparqlbuilder.core.StandardQueryElementCollection<Prefix>
org.eclipse.rdf4j.sparqlbuilder.core.PrefixDeclarations
-
Field Summary
Fields inherited from class org.eclipse.rdf4j.sparqlbuilder.core.QueryElementCollection
elements
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionAdd prefix declarations to this collectionreplacePrefixesInQuery
(String queryString) Replaces all occurrences of all declared namespaces with their prefix labels in the specified query string.Methods inherited from class org.eclipse.rdf4j.sparqlbuilder.core.StandardQueryElementCollection
getQueryString, printBodyIfEmpty, printNameIfEmpty, resetWrapperMethod, setOperatorName, setOperatorName, setWrapperMethod
Methods inherited from class org.eclipse.rdf4j.sparqlbuilder.core.QueryElementCollection
addElements, addElements, isEmpty
-
Constructor Details
-
PrefixDeclarations
public PrefixDeclarations()
-
-
Method Details
-
addPrefix
Add prefix declarations to this collection- Parameters:
prefixes
- the prefixes- Returns:
- this
-
replacePrefixesInQuery
Replaces all occurrences of all declared namespaces with their prefix labels in the specified query string.For example, if the
foaf:
prefix is declared withPrefixDeclarations
, the querySELECT ?name WHERE { ?x <http://xmlns.com/foaf/0.1/name> ?name . }
is transformed to
SELECT ?name WHERE { ?x foaf:name ?name . }
Rules applied:
- The longest matching namespace wins (if one namespace is a substring of another)
- No replacement if the namespace occurs in a string, i.e., within
"
or'''
- Only replace if the continuation of the match is a local name (
- Parameters:
queryString
- the query string- Returns:
- the query string, namespaces replaced with prefix label
-