Class PrefixDeclarations
- java.lang.Object
-
- org.eclipse.rdf4j.sparqlbuilder.core.QueryElementCollection<T>
-
- org.eclipse.rdf4j.sparqlbuilder.core.StandardQueryElementCollection<Prefix>
-
- org.eclipse.rdf4j.sparqlbuilder.core.PrefixDeclarations
-
- All Implemented Interfaces:
QueryElement
public class PrefixDeclarations extends StandardQueryElementCollection<Prefix>
A collection of SPARQL Prefix declarations- See Also:
- SPARQL Prefix
-
-
Field Summary
-
Fields inherited from class org.eclipse.rdf4j.sparqlbuilder.core.QueryElementCollection
elements
-
-
Constructor Summary
Constructors Constructor Description PrefixDeclarations()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PrefixDeclarations
addPrefix(Prefix... prefixes)
Add prefix declarations to this collectionprivate Prefix
findMatchingPrefix(java.lang.String queryString, int pos)
Returns the longest prefix that is found starting at positionpos
in thequeryString
private int
findNextRelevantIndex(java.lang.String queryString, int lastPos, boolean isInsideString)
private int
findNextWhitespace(java.lang.String continuation)
private java.lang.String
getIRIStringFromPrefix(Prefix p)
private boolean
isContinuationALocalName(java.lang.String continuation)
private boolean
isDoubleQuote(java.lang.String queryString, int pos)
private boolean
isEscapeChar(java.lang.String queryString, int pos)
private boolean
isMultilineQuote(java.lang.String queryString, int pos)
private boolean
isOpeningAngledBracket(java.lang.String queryString, int pos)
java.lang.String
replacePrefixesInQuery(java.lang.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
-
-
-
-
Method Detail
-
addPrefix
public PrefixDeclarations addPrefix(Prefix... prefixes)
Add prefix declarations to this collection- Parameters:
prefixes
- the prefixes- Returns:
- this
-
replacePrefixesInQuery
public java.lang.String replacePrefixesInQuery(java.lang.String queryString)
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
-
isOpeningAngledBracket
private boolean isOpeningAngledBracket(java.lang.String queryString, int pos)
-
isMultilineQuote
private boolean isMultilineQuote(java.lang.String queryString, int pos)
-
isEscapeChar
private boolean isEscapeChar(java.lang.String queryString, int pos)
-
isDoubleQuote
private boolean isDoubleQuote(java.lang.String queryString, int pos)
-
findNextRelevantIndex
private int findNextRelevantIndex(java.lang.String queryString, int lastPos, boolean isInsideString)
-
findMatchingPrefix
private Prefix findMatchingPrefix(java.lang.String queryString, int pos)
Returns the longest prefix that is found starting at positionpos
in thequeryString
- Parameters:
queryString
- the query stringpos
- the position at which to start looking- Returns:
- the longest prefixIri that matches fully (no tie-break for duplicates)
-
isContinuationALocalName
private boolean isContinuationALocalName(java.lang.String continuation)
-
findNextWhitespace
private int findNextWhitespace(java.lang.String continuation)
-
getIRIStringFromPrefix
private java.lang.String getIRIStringFromPrefix(Prefix p)
-
-