Class PrefixDeclarations

    • 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 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 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
      • 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 position pos in the queryString
        Parameters:
        queryString - the query string
        pos - 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)