Package org.eclipse.emf.cdo.util

# Class CDOURIUtil

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

public final class CDOURIUtil extends 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 final String`
`PROTOCOL_NAME`
`static final String`
`SEGMENT_SEPARATOR`
`static final char`
`SEGMENT_SEPARATOR_CHAR`

## Method Summary

Modifier and Type
Method
Description
`static List<String>`
`analyzePath(String path)`
`static List<String>`
`analyzePath(URI uri)`
`static void`
`appendQueryParameter(StringBuilder query, String parameter, String value)`
`static URI`
`appendResourcePath(URI uri, String path)`
`static CDOID`
`convertExternalCDOID(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 URI`
`createResourceURI(String repositoryUUID, String path)`
Deprecated.
This method is subject to removal in a future release.
`static URI`
`createResourceURI(CDOSession session, String path)`
Deprecated.
This method is subject to removal in a future release.
`static URI`
`createResourceURI(CDOView view, String path)`
`static String`
`extractRepositoryUUID(URI uri)`
Deprecated.
`static String[]`
`extractResourceFolderAndName(URI uri)`
`static String`
`extractResourcePath(URI uri)`
`static String`
`formatQuery(Map<String,String> parameters)`
`static Map<String,String>`
`getParameters(String query)`
`static String`
`sanitizePath(String path)`
`static URI`
`trimResourceInfos(URI uri)`
`static void`
`validateURI(URI uri)`
Deprecated.

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

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

## Field Details

### PROTOCOL_NAME

public static final 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 String SEGMENT_SEPARATOR

## Method Details

### extractResourceFolderAndName

public static String[] extractResourceFolderAndName(URI uri) throws InvalidURIException

Throws:
  `InvalidURIException`

### extractResourcePath

public static String extractResourcePath(URI uri) throws InvalidURIException

Throws:
  `InvalidURIException`

### createResourceURI

public static URI createResourceURI(CDOView view, String path)

### convertExternalCDOID

public static CDOID convertExternalCDOID(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 String sanitizePath(String path)

Since:
  4.11

### analyzePath

public static List<String> analyzePath(URI uri)

### analyzePath

public static List<String> analyzePath(String path)

### getParameters

public static Map<String,String> getParameters(String query)

Since:
  4.0

### formatQuery

public static String formatQuery(Map<String,String> parameters)

Since:
  4.12

### appendQueryParameter

public static void appendQueryParameter(StringBuilder query, String parameter, String value)

Since:
  4.12

### appendResourcePath

public static URI appendResourcePath(URI uri, String path)

Since:
  4.12

### trimResourceInfos

public static URI trimResourceInfos(URI uri)

Since:
  4.12

### validateURI

@Deprecated public static void validateURI(URI uri) throws InvalidURIException
Deprecated.

Throws:
  `InvalidURIException`

### extractRepositoryUUID

@Deprecated public static String extractRepositoryUUID(URI uri)
Deprecated.

### createResourceURI

@Deprecated public static URI createResourceURI(String repositoryUUID, 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 URI createResourceURI(CDOSession session, String path)
Deprecated.
This method is subject to removal in a future release.