Package org.eclipse.rdf4j.sparqlbuilder.core

## 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 collection
    `String` | `replacePrefixesInQuery​(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`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### PrefixDeclarations

          public PrefixDeclarations()

  - ### Method Detail

    - #### addPrefix

          public PrefixDeclarations addPrefix​(Prefix... prefixes)

      Add prefix declarations to this collection
      Parameters:
        `prefixes` - the prefixes
      Returns:
        this

    - #### replacePrefixesInQuery

          public String replacePrefixesInQuery​(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 with `PrefixDeclarations`, the query

           SELECT ?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