Package org.eclipse.emf.cdo.util

## Class CDOURIUtil

- java.lang.Object
- - org.eclipse.emf.cdo.util.CDOURIUtil

-     public final class CDOURIUtil
      extends java.lang.Object

  Various static methods that may help with CDO-specific `URIs`.

  CDO URIs are in one of two different formats, either canonical or connection-aware. The canonical format is:

  > cdo:// RepositoryUUID / ResourcePath [? Param=Value (& Param=Value)*]

  The non-terminals being:

  - RepositoryUUID: the `UUID` of the repository. By default it's generated when a repository is first started. If the default format is not adequate the UUID value can be overridden in the repository setup with the `overrideUUID` property.
  - ResourcePath: the full path of the `resource` within the repository, segments separated by slashes, no leading slash.
  - Param: one of the following
    - prefetch: a boolean value. The value true attempts to load all objects contained by the resource in a single server-round trip and cache the results.
  URIs in the canonical form to resolve to `resources` properly require the `resource set` to be configured externally so that the connection to the correct repository can be established, for example:

  > `session.openView(resourceSet);`

  Note that resources preserve their original URI in the scope of the managing `view`, that is not necessarily in canonical format.

  For a description of the connection-aware URI format refer to `CDOURIData`.

  Since:
    2.0
  Author:
    Simon McDuff

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static java.lang.String` | `PROTOCOL_NAME` |
    `static java.lang.String` | `SEGMENT_SEPARATOR` |
    `static char` | `SEGMENT_SEPARATOR_CHAR` |

  - ### Method Summary

    All Methods Static Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static java.util.List<java.lang.String>` | `analyzePath​(java.lang.String path)` |
    `static java.util.List<java.lang.String>` | `analyzePath​(org.eclipse.emf.common.util.URI uri)` |
    `static void` | `appendQueryParameter​(java.lang.StringBuilder query, java.lang.String parameter, java.lang.String value)` |
    `static org.eclipse.emf.common.util.URI` | `appendResourcePath​(org.eclipse.emf.common.util.URI uri, java.lang.String path)` |
    `static CDOID` | `convertExternalCDOID​(org.eclipse.emf.common.util.URI baseURI, CDOID newCDOID)` | Converting temporary CDOID to External CDOID e.g.: baseURI = cdo://2a57dfcf-8f97-4d39-8e17-9d99ae5c4b3c/resB#5/2 newCDOID = OID2 return = cdo://2a57dfcf-8f97-4d39-8e17-9d99ae5c4b3c/resB#1/2
    `static org.eclipse.emf.common.util.URI` | `createResourceURI​(java.lang.String repositoryUUID, java.lang.String path)` | Deprecated. This method is subject to removal in a future release.
    `static org.eclipse.emf.common.util.URI` | `createResourceURI​(CDOSession session, java.lang.String path)` | Deprecated. This method is subject to removal in a future release.
    `static org.eclipse.emf.common.util.URI` | `createResourceURI​(CDOView view, java.lang.String path)` |
    `static java.lang.String` | `extractRepositoryUUID​(org.eclipse.emf.common.util.URI uri)` | Deprecated.
    `static java.lang.String[]` | `extractResourceFolderAndName​(org.eclipse.emf.common.util.URI uri)` |
    `static java.lang.String` | `extractResourcePath​(org.eclipse.emf.common.util.URI uri)` |
    `static java.lang.String` | `formatQuery​(java.util.Map<java.lang.String,​java.lang.String> parameters)` |
    `static java.util.Map<java.lang.String,​java.lang.String>` | `getParameters​(java.lang.String query)` |
    `static java.lang.String` | `sanitizePath​(java.lang.String path)` |
    `static org.eclipse.emf.common.util.URI` | `trimResourceInfos​(org.eclipse.emf.common.util.URI uri)` |
    `static void` | `validateURI​(org.eclipse.emf.common.util.URI uri)` | Deprecated.

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

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

- - ### Field Detail

    - #### PROTOCOL_NAME

          public static final java.lang.String PROTOCOL_NAME

      Since:
        4.0
      See Also:
        Constant Field Values

    - #### SEGMENT_SEPARATOR_CHAR

          public static final char SEGMENT_SEPARATOR_CHAR

      See Also:
        Constant Field Values

    - #### SEGMENT_SEPARATOR

          public static final java.lang.String SEGMENT_SEPARATOR

  - ### Method Detail

    - #### extractResourceFolderAndName

          public static java.lang.String[] extractResourceFolderAndName​(org.eclipse.emf.common.util.URI uri)
                                                                 throws InvalidURIException

      Throws:
        `InvalidURIException`

    - #### extractResourcePath

          public static java.lang.String extractResourcePath​(org.eclipse.emf.common.util.URI uri)
                                                      throws InvalidURIException

      Throws:
        `InvalidURIException`

    - #### createResourceURI

          public static org.eclipse.emf.common.util.URI createResourceURI​(CDOView view,
                                                                          java.lang.String path)

    - #### convertExternalCDOID

          public static CDOID convertExternalCDOID​(org.eclipse.emf.common.util.URI baseURI,
                                                   CDOID newCDOID)

      Converting temporary CDOID to External CDOID
      e.g.:
      baseURI = cdo://2a57dfcf-8f97-4d39-8e17-9d99ae5c4b3c/resB#5/2
      newCDOID = OID2
      return = cdo://2a57dfcf-8f97-4d39-8e17-9d99ae5c4b3c/resB#1/2

    - #### sanitizePath

          public static java.lang.String sanitizePath​(java.lang.String path)

      Since:
        4.11

    - #### analyzePath

          public static java.util.List<java.lang.String> analyzePath​(org.eclipse.emf.common.util.URI uri)

    - #### analyzePath

          public static java.util.List<java.lang.String> analyzePath​(java.lang.String path)

    - #### getParameters

          public static java.util.Map<java.lang.String,​java.lang.String> getParameters​(java.lang.String query)

      Since:
        4.0

    - #### formatQuery

          public static java.lang.String formatQuery​(java.util.Map<java.lang.String,​java.lang.String> parameters)

      Since:
        4.12

    - #### appendQueryParameter

          public static void appendQueryParameter​(java.lang.StringBuilder query,
                                                  java.lang.String parameter,
                                                  java.lang.String value)

      Since:
        4.12

    - #### appendResourcePath

          public static org.eclipse.emf.common.util.URI appendResourcePath​(org.eclipse.emf.common.util.URI uri,
                                                                           java.lang.String path)

      Since:
        4.12

    - #### trimResourceInfos

          public static org.eclipse.emf.common.util.URI trimResourceInfos​(org.eclipse.emf.common.util.URI uri)

      Since:
        4.12

    - #### validateURI

          @Deprecated
          public static void validateURI​(org.eclipse.emf.common.util.URI uri)
                                  throws InvalidURIException

      Deprecated.
      Throws:
        `InvalidURIException`

    - #### extractRepositoryUUID

          @Deprecated
          public static java.lang.String extractRepositoryUUID​(org.eclipse.emf.common.util.URI uri)

      Deprecated.

    - #### createResourceURI

          @Deprecated
          public static org.eclipse.emf.common.util.URI createResourceURI​(java.lang.String repositoryUUID,
                                                                          java.lang.String path)

      Deprecated.
      This method is subject to removal in a future release.

      cdo://repositoryUUID/path

      The path is added at the end of "cdo://repositoryUUID". If path doesn't start with '/', it will be added automatically.
      e.g.: /resA or resA will give the same result → cdo://repositoryUUID/resA
      authority = repositoryUUID
      path = /resA

    - #### createResourceURI

          @Deprecated
          public static org.eclipse.emf.common.util.URI createResourceURI​(CDOSession session,
                                                                          java.lang.String path)

      Deprecated.
      This method is subject to removal in a future release.