Package org.eclipse.rdf4j.http.protocol

## Class Protocol

- java.lang.Object
- - org.eclipse.rdf4j.http.protocol.Protocol

-     public abstract class Protocol
      extends Object

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `Protocol.Action` | Defines the action a particular transaction update is executing.
    `static class` | `Protocol.TIMEOUT` | Deprecated.

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static String` | `ACCEPT_PARAM_NAME` | Parameter name for the Accept parameter (may also be used as the name of the Accept HTTP header).
    `static String` | `ACTION_PARAM_NAME` | Parameter name for the action parameter used in transactions.
    `static String` | `BASEURI_PARAM_NAME` | Parameter name for the base-URI parameter.
    `static String` | `BINDING_PREFIX` | Parameter prefix for query-external variable bindings.
    `static String` | `CACHE_TIMEOUT_PROPERTY` | Configurable system property `rdf4j.server.txn.registry.timeout` for specifying the transaction cache timeout (in seconds).
    `static String` | `CONFIG` | Relative location of the config resource.
    `static String` | `CONTEXT_PARAM_NAME` | Parameter name for the context parameter.
    `static String` | `CONTEXTS` | Relative location of the context list resource of a repository.
    `static String` | `DEFAULT_GRAPH_PARAM_NAME` | Parameter name for the default graph URI parameter.
    `static int` | `DEFAULT_TIMEOUT` | Default timeout setting for transaction cache entries (in seconds).
    `static String` | `DISTINCT_PARAM_NAME` | Parameter name for the distinct parameter.
    `static String` | `FORM_MIME_TYPE` | MIME type for www forms: application/x-www-form-urlencoded.
    `static String` | `GRAPH_PARAM_NAME` | Parameter name for the graph parameter.
    `static String` | `INCLUDE_INFERRED_PARAM_NAME` | Parameter name for the 'includeInferred' parameter.
    `static String` | `INSERT_GRAPH_PARAM_NAME` | Parameter name for the default insert graph URI parameter.
    `static String` | `ISOLATION_LEVEL_PARAM_NAME` | Deprecated. since 3.3.0.
    `static String` | `LIMIT_PARAM_NAME` |
    `static String` | `NAMED_GRAPH_PARAM_NAME` | Parameter name for the named graph URI parameter.
    `static String` | `NAMESPACES` | Relative location of the namespaces list resource of a repository.
    `static String` | `NULL_PARAM_VALUE` | Parameter value for the NULL context.
    `static String` | `OBJECT_PARAM_NAME` | Parameter name for the 'object' parameter of statement query.
    `static String` | `OFFSET_PARAM_NAME` |
    `static String` | `PREDICATE_PARAM_NAME` | Parameter name for the 'predicate' parameter of a statement query.
    `static String` | `PRESERVE_BNODE_ID_PARAM_NAME` | Parameter for server instruction to preserve blank node ids when parsing request data.
    `static String` | `PROTOCOL` | Relative location of the protocol resource.
    `static String` | `QUERY_LANGUAGE_PARAM_NAME` | Parameter name for the query language parameter.
    `static String` | `QUERY_PARAM_NAME` | Parameter name for the query parameter.
    `static String` | `REMOVE_GRAPH_PARAM_NAME` | Parameter name for the default remove graph URI parameter.
    `static String` | `REPOSITORIES` | Relative location of the repository list resource.
    `static String` | `SIZE` | Relative location of the 'size' resource of a repository.
    `static String` | `SPARQL_QUERY_MIME_TYPE` | MIME type for SPARQL update: application/sparql-query.
    `static String` | `SPARQL_UPDATE_MIME_TYPE` | MIME type for SPARQL update: application/sparql-update.
    `static String` | `STATEMENTS` | Relative location of the statement list resource of a repository.
    `static String` | `SUBJECT_PARAM_NAME` | Parameter name for the 'subject' parameter of a statement query.
    `static String` | `TIMEOUT_PARAM_NAME` |
    `static String` | `TRANSACTION_SETTINGS_PREFIX` | Prefix for transaction settings in the query param
    `static String` | `TRANSACTIONS` | Relative location of the transaction resources of a repository.
    `static String` | `TXN_MIME_TYPE` | MIME type for transactions: application/x-rdftransaction.
    `static String` | `UPDATE_PARAM_NAME` | Parameter name for the update parameter.
    `static String` | `USING_GRAPH_PARAM_NAME` | Parameter name for the default graph URI parameter for update.
    `static String` | `USING_NAMED_GRAPH_PARAM_NAME` | Parameter name for the named graph URI parameter for update.
    `static String` | `VERSION` | Protocol version.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Protocol()` |

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static Resource` | `decodeContext​(String encodedValue, ValueFactory valueFactory)` | Decode a previously encoded context Resource.
    `static Resource[]` | `decodeContexts​(String[] encodedValues, ValueFactory valueFactory)` | Decode previously encoded contexts.
    `static Resource` | `decodeResource​(String encodedValue, ValueFactory valueFactory)` | Decode a previously encoded Resource.
    `static IRI` | `decodeURI​(String encodedValue, ValueFactory valueFactory)` | Decode a previously encoded URI.
    `static Value` | `decodeValue​(String encodedValue, ValueFactory valueFactory)` | Decode a previously encoded value.
    `static String` | `encodeContext​(Resource context)` | Encodes a context resource for use in a URL.
    `static String[]` | `encodeContexts​(Resource... contexts)` | Encode context resources for use in a URL.
    `static String` | `encodeValue​(Value value)` | Encodes a value in a canonical serialized string format, for use in a URL query parameter.
    `static String` | `getConfigLocation​(String serverLocation)` | Get the location of the server configuration resource on the specified server.
    `static String` | `getContextsLocation​(String repositoryLocation)` | Get the location of the contexts lists resource for a specific repository.
    `static String` | `getNamespacePrefixLocation​(String repositoryLocation, String prefix)` | Get the location of the namespace with the specified prefix for a specific repository on the specified server.
    `static String` | `getNamespacesLocation​(String repositoryLocation)` | Get the location of the namespaces lists resource for a specific repository on the specified server.
    `static String` | `getProtocolLocation​(String serverLocation)` | Get the location of the protocol resource on the specified server.
    `static String` | `getRepositoriesLocation​(String serverLocation)` | Get the location of the repository list resource on the specified server.
    `static String` | `getRepositoryConfigLocation​(String repositoryLocation)` | Get the location of the config of a specific repository resource.
    `static String` | `getRepositoryID​(String repositoryLocation)` | Extracts the repository ID from the repository location.
    `static String` | `getRepositoryLocation​(String serverLocation, String repositoryID)` | Get the location of a specific repository resource on the specified server.
    `static String` | `getServerLocation​(String repositoryLocation)` | Extracts the server location from the repository location.
    `static String` | `getSizeLocation​(String repositoryLocation)` | Get the location of the 'size' resource for a specific repository on the specified server.
    `static String` | `getStatementsLocation​(String repositoryLocation)` | Get the location of the statements resource for a specific repository.
    `static String` | `getTransactionsLocation​(String repositoryLocation)` | Get the location of the transaction resources for a specific repository.

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

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

- - ### Field Detail

    - #### CACHE_TIMEOUT_PROPERTY

          public static final String CACHE_TIMEOUT_PROPERTY

      Configurable system property `rdf4j.server.txn.registry.timeout` for specifying the transaction cache timeout (in seconds).
      See Also:
        Constant Field Values

    - #### DEFAULT_TIMEOUT

          public static final int DEFAULT_TIMEOUT

      Default timeout setting for transaction cache entries (in seconds).
      See Also:
        Constant Field Values

    - #### VERSION

          public static final String VERSION

      Protocol version.
      - 12: since RDF4J 3.5.0
      - 11: since RDF4J 3.3.0
      - 10: since RDF4J 3.1.0
      - 9: since RDF4J 3.0.0
      See Also:
        Constant Field Values

    - #### SUBJECT_PARAM_NAME

          public static final String SUBJECT_PARAM_NAME

      Parameter name for the 'subject' parameter of a statement query.
      See Also:
        Constant Field Values

    - #### PREDICATE_PARAM_NAME

          public static final String PREDICATE_PARAM_NAME

      Parameter name for the 'predicate' parameter of a statement query.
      See Also:
        Constant Field Values

    - #### OBJECT_PARAM_NAME

          public static final String OBJECT_PARAM_NAME

      Parameter name for the 'object' parameter of statement query.
      See Also:
        Constant Field Values

    - #### INCLUDE_INFERRED_PARAM_NAME

          public static final String INCLUDE_INFERRED_PARAM_NAME

      Parameter name for the 'includeInferred' parameter.
      See Also:
        Constant Field Values

    - #### CONTEXT_PARAM_NAME

          public static final String CONTEXT_PARAM_NAME

      Parameter name for the context parameter.
      See Also:
        Constant Field Values

    - #### NULL_PARAM_VALUE

          public static final String NULL_PARAM_VALUE

      Parameter value for the NULL context.
      See Also:
        Constant Field Values

    - #### GRAPH_PARAM_NAME

          public static final String GRAPH_PARAM_NAME

      Parameter name for the graph parameter.
      See Also:
        Constant Field Values

    - #### UPDATE_PARAM_NAME

          public static final String UPDATE_PARAM_NAME

      Parameter name for the update parameter.
      See Also:
        Constant Field Values

    - #### BASEURI_PARAM_NAME

          public static final String BASEURI_PARAM_NAME

      Parameter name for the base-URI parameter.
      See Also:
        Constant Field Values

    - #### QUERY_PARAM_NAME

          public static final String QUERY_PARAM_NAME

      Parameter name for the query parameter.
      See Also:
        Constant Field Values

    - #### LIMIT_PARAM_NAME

          public static final String LIMIT_PARAM_NAME

      See Also:
        Constant Field Values

    - #### OFFSET_PARAM_NAME

          public static final String OFFSET_PARAM_NAME

      See Also:
        Constant Field Values

    - #### QUERY_LANGUAGE_PARAM_NAME

          public static final String QUERY_LANGUAGE_PARAM_NAME

      Parameter name for the query language parameter.
      See Also:
        Constant Field Values

    - #### TIMEOUT_PARAM_NAME

          public static final String TIMEOUT_PARAM_NAME

      See Also:
        Constant Field Values

    - #### REMOVE_GRAPH_PARAM_NAME

          public static final String REMOVE_GRAPH_PARAM_NAME

      Parameter name for the default remove graph URI parameter.
      See Also:
        Constant Field Values

    - #### INSERT_GRAPH_PARAM_NAME

          public static final String INSERT_GRAPH_PARAM_NAME

      Parameter name for the default insert graph URI parameter.
      See Also:
        Constant Field Values

    - #### USING_GRAPH_PARAM_NAME

          public static final String USING_GRAPH_PARAM_NAME

      Parameter name for the default graph URI parameter for update.
      See Also:
        Constant Field Values

    - #### USING_NAMED_GRAPH_PARAM_NAME

          public static final String USING_NAMED_GRAPH_PARAM_NAME

      Parameter name for the named graph URI parameter for update.
      See Also:
        Constant Field Values

    - #### DEFAULT_GRAPH_PARAM_NAME

          public static final String DEFAULT_GRAPH_PARAM_NAME

      Parameter name for the default graph URI parameter.
      See Also:
        Constant Field Values

    - #### NAMED_GRAPH_PARAM_NAME

          public static final String NAMED_GRAPH_PARAM_NAME

      Parameter name for the named graph URI parameter.
      See Also:
        Constant Field Values

    - #### ACCEPT_PARAM_NAME

          public static final String ACCEPT_PARAM_NAME

      Parameter name for the Accept parameter (may also be used as the name of the Accept HTTP header).
      See Also:
        Constant Field Values

    - #### ISOLATION_LEVEL_PARAM_NAME

          @Deprecated
          public static final String ISOLATION_LEVEL_PARAM_NAME

      Deprecated.
      since 3.3.0. Use `transaction-setting__isolation-level` instead.
      Parameter name for the isolation level used in transactions.
      See Also:
        `TRANSACTION_SETTINGS_PREFIX`, Constant Field Values

    - #### TRANSACTION_SETTINGS_PREFIX

          public static final String TRANSACTION_SETTINGS_PREFIX

      Prefix for transaction settings in the query param
      Since:
        3.3.0
      See Also:
        Constant Field Values

    - #### ACTION_PARAM_NAME

          public static final String ACTION_PARAM_NAME

      Parameter name for the action parameter used in transactions.
      See Also:
        Constant Field Values

    - #### DISTINCT_PARAM_NAME

          public static final String DISTINCT_PARAM_NAME

      Parameter name for the distinct parameter.
      See Also:
        Constant Field Values

    - #### PROTOCOL

          public static final String PROTOCOL

      Relative location of the protocol resource.
      See Also:
        Constant Field Values

    - #### CONFIG

          public static final String CONFIG

      Relative location of the config resource.
      See Also:
        Constant Field Values

    - #### REPOSITORIES

          public static final String REPOSITORIES

      Relative location of the repository list resource.
      See Also:
        Constant Field Values

    - #### STATEMENTS

          public static final String STATEMENTS

      Relative location of the statement list resource of a repository.
      See Also:
        Constant Field Values

    - #### TRANSACTIONS

          public static final String TRANSACTIONS

      Relative location of the transaction resources of a repository.
      See Also:
        Constant Field Values

    - #### CONTEXTS

          public static final String CONTEXTS

      Relative location of the context list resource of a repository.
      See Also:
        Constant Field Values

    - #### NAMESPACES

          public static final String NAMESPACES

      Relative location of the namespaces list resource of a repository.
      See Also:
        Constant Field Values

    - #### BINDING_PREFIX

          public static final String BINDING_PREFIX

      Parameter prefix for query-external variable bindings.
      See Also:
        Constant Field Values

    - #### SIZE

          public static final String SIZE

      Relative location of the 'size' resource of a repository.
      See Also:
        Constant Field Values

    - #### TXN_MIME_TYPE

          public static final String TXN_MIME_TYPE

      MIME type for transactions: application/x-rdftransaction.
      See Also:
        Constant Field Values

    - #### FORM_MIME_TYPE

          public static final String FORM_MIME_TYPE

      MIME type for www forms: application/x-www-form-urlencoded.
      See Also:
        Constant Field Values

    - #### SPARQL_QUERY_MIME_TYPE

          public static final String SPARQL_QUERY_MIME_TYPE

      MIME type for SPARQL update: application/sparql-query.
      See Also:
        Constant Field Values

    - #### SPARQL_UPDATE_MIME_TYPE

          public static final String SPARQL_UPDATE_MIME_TYPE

      MIME type for SPARQL update: application/sparql-update.
      See Also:
        Constant Field Values

    - #### PRESERVE_BNODE_ID_PARAM_NAME

          public static final String PRESERVE_BNODE_ID_PARAM_NAME

      Parameter for server instruction to preserve blank node ids when parsing request data.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### Protocol

          public Protocol()

  - ### Method Detail

    - #### getProtocolLocation

          public static final String getProtocolLocation​(String serverLocation)

      Get the location of the protocol resource on the specified server.
      Parameters:
        `serverLocation` - the base location of a server implementing this REST protocol.
      Returns:
        the location of the protocol resource on the specified server

    - #### getConfigLocation

          public static final String getConfigLocation​(String serverLocation)

      Get the location of the server configuration resource on the specified server.
      Parameters:
        `serverLocation` - the base location of a server implementing this REST protocol.
      Returns:
        the location of the server configuration resource on the specified server

    - #### getRepositoriesLocation

          public static final String getRepositoriesLocation​(String serverLocation)

      Get the location of the repository list resource on the specified server.
      Parameters:
        `serverLocation` - the base location of a server implementing this REST protocol.
      Returns:
        the location of the repository list resource on the specified server

    - #### getRepositoryLocation

          public static final String getRepositoryLocation​(String serverLocation,
                                                           String repositoryID)

      Get the location of a specific repository resource on the specified server.
      Parameters:
        `serverLocation` - the base location of a server implementing this REST protocol.
        `repositoryID` - the ID of the repository
      Returns:
        the location of a specific repository resource on the specified server

    - #### getRepositoryConfigLocation

          public static final String getRepositoryConfigLocation​(String repositoryLocation)

      Get the location of the config of a specific repository resource.
      Parameters:
        `repositoryLocation` - the location of a repository implementing this REST protocol.
      Returns:
        the location of the configuration resource for the specified repository

    - #### getStatementsLocation

          public static final String getStatementsLocation​(String repositoryLocation)

      Get the location of the statements resource for a specific repository.
      Parameters:
        `repositoryLocation` - the location of a repository implementing this REST protocol.
      Returns:
        the location of the statements resource for the specified repository

    - #### getTransactionsLocation

          public static final String getTransactionsLocation​(String repositoryLocation)

      Get the location of the transaction resources for a specific repository.
      Parameters:
        `repositoryLocation` - the location of a repository implementing this REST protocol.
      Returns:
        the location of the transaction resources for the specified repository

    - #### getServerLocation

          public static final String getServerLocation​(String repositoryLocation)

      Extracts the server location from the repository location.
      Parameters:
        `repositoryLocation` - the location of a repository implementing this REST protocol.
      Returns:
        the location of the server resource for the specified repository.

    - #### getRepositoryID

          public static final String getRepositoryID​(String repositoryLocation)

      Extracts the repository ID from the repository location.
      Parameters:
        `repositoryLocation` - the location of a repository implementing this REST protocol.
      Returns:
        the ID of the repository.

    - #### getContextsLocation

          public static final String getContextsLocation​(String repositoryLocation)

      Get the location of the contexts lists resource for a specific repository.
      Parameters:
        `repositoryLocation` - the location of a repository implementing this REST protocol.
      Returns:
        the location of the contexts lists resource for the specified repository

    - #### getNamespacesLocation

          public static final String getNamespacesLocation​(String repositoryLocation)

      Get the location of the namespaces lists resource for a specific repository on the specified server.
      Parameters:
        `repositoryLocation` - the base location of a server implementing this REST protocol.
      Returns:
        the location of the namespaces lists resource for a specific repository on the specified server

    - #### getNamespacePrefixLocation

          public static final String getNamespacePrefixLocation​(String repositoryLocation,
                                                                String prefix)

      Get the location of the namespace with the specified prefix for a specific repository on the specified server.
      Parameters:
        `repositoryLocation` - the location of a repository implementing this REST protocol.
        `prefix` - the namespace prefix
      Returns:
        the location of the the namespace with the specified prefix for a specific repository on the specified server

    - #### getSizeLocation

          public static final String getSizeLocation​(String repositoryLocation)

      Get the location of the 'size' resource for a specific repository on the specified server.
      Parameters:
        `repositoryLocation` - the location of a repository implementing this REST protocol.
      Returns:
        the location of the 'size' resource for a specific repository on the specified server

    - #### encodeValue

          public static String encodeValue​(Value value)

      Encodes a value in a canonical serialized string format, for use in a URL query parameter.
      Parameters:
        `value` - The value to encode, possibly null.
      Returns:
        The protocol-serialized representation of the supplied value, or `NULL_PARAM_VALUE` if the supplied value was null.

    - #### decodeValue

          public static Value decodeValue​(String encodedValue,
                                          ValueFactory valueFactory)

      Decode a previously encoded value.
      Parameters:
        `encodedValue` - the encoded value
        `valueFactory` - the factory to use for constructing the Value
      Returns:
        the decoded Value
      See Also:
        `encodeValue(Value)`

    - #### decodeResource

          public static Resource decodeResource​(String encodedValue,
                                                ValueFactory valueFactory)

      Decode a previously encoded Resource.
      Parameters:
        `encodedValue` - the encoded value
        `valueFactory` - the factory to use for constructing the Resource
      Returns:
        the decoded Resource
      See Also:
        `encodeValue(Value)`

    - #### decodeURI

          public static IRI decodeURI​(String encodedValue,
                                      ValueFactory valueFactory)

      Decode a previously encoded URI.
      Parameters:
        `encodedValue` - the encoded value
        `valueFactory` - the factory to use for constructing the URI
      Returns:
        the decoded URI
      See Also:
        `encodeValue(Value)`

    - #### encodeContext

          public static String encodeContext​(Resource context)

      Encodes a context resource for use in a URL.
      Parameters:
        `context` - The context to encode, possibly null.
      Returns:
        The protocol-serialized representation of the supplied context, or `NULL_PARAM_VALUE` if the supplied value was null.

    - #### decodeContext

          public static Resource decodeContext​(String encodedValue,
                                               ValueFactory valueFactory)

      Decode a previously encoded context Resource.
      Parameters:
        `encodedValue` - the encoded value
        `valueFactory` - the factory to use for constructing the Resource
      Returns:
        the decoded Resource, or null if the encoded values was null or equal to `NULL_PARAM_VALUE`

    - #### encodeContexts

          public static String[] encodeContexts​(Resource... contexts)

      Encode context resources for use in a URL.
      Parameters:
        `contexts` - the contexts to encode, must not be null.
      Returns:
        the encoded contexts
      Throws:
        `IllegalArgumentException` - If the contexts is null.

    - #### decodeContexts

          public static Resource[] decodeContexts​(String[] encodedValues,
                                                  ValueFactory valueFactory)

      Decode previously encoded contexts.
      Parameters:
        `encodedValues` - the encoded values
        `valueFactory` - the factory to use for constructing the Resources
      Returns:
        the decoded Resources, or an empty array if the supplied encodedValues was null.