Ogni risorsa ha un'ubicazione, che identifica in modo univoco la risorsa in un punto specifico nel tempo. Per una risorsa basata su file, l'ubicazione viene espressa sotto forma di nome percorso file. Per una risorsa su server, l'ubicazione contiene le informazioni necessarie per individuare l'oggetto (ad esempio un ID database in una VOB).
L'ubicazione della risorsa è richiesta quando si legge o si scrive il contenuto della risorsa o durante la lettura o la scrittura delle proprietà su un server.
L'oggetto StpLocation rappresenta l'indirizzo di una risorsa; in quanto tale può essere utilizzato per creare un proxy di risorse (utilizzando uno dei metodi di creazione factory di proxy risorse di Provider). Di regola, il proxy risorsa creato da una ubicazione deve essere dello stesso tipo della risorsa indicata dalla ubicazione. Tuttavia il tipo di risorsa indicata da una ubicazione non può essere sempre determinata unicamente dalla specifica dell'indirizzo. Di conseguenza, questa regola non può essere sempre applicata nel momento in cui viene creato il proxy.
Tutte le risorse hanno un forma stabile di ubicazione che può essere utilizzata per memorizzare le identità risorsa sul client fra le sessioni client. Questa ubicazione stabile non può essere l'ubicazione utilizzata per creare la risorsa. Il server crea questa ubicazione stabile per l'utente al momento della creazione della risorsa; l'ubicazione è sempre disponibile come una proprietà di risorsa che non cambia. L'oggetto StpLocation fornisce i metodi per ottenere la rappresentazione della stringa di una ubicazione e per ricollocare quella stringa in una ubicazione.
Un'istanza StpLocation rappresenta una specifica di ubicazione che è stata analizzata nei relativi campi componente. Vengono utilizzati diversi formati, o schemi, per esprimere l'ubicazione di varie risorse come stringa. Questi schemi sono costituiti da uno o più dei seguenti campi: dominio, nome repository, spazio dei nomi e nome oggetti. Il campo spazio dei nomi determina quale schema viene utilizzato.
L'interfaccia StpLocation fornisce i metodi per analizzare una specifica di ubicazione nelle relative parti che la costituiscono. Mediante i metodi disponibili, i client Rational CM API possono esaminare le specifiche di ubicazione fornite dall'utente per determinare se sono appropriate per il contesto in cui vengono utilizzate. In base a questa analisi un client può fornire le parti della specifica di ubicazione che l'utente omette, se il contesto definisce quelle parti mancanti in modo non ambiguo.
Il metodo StpProvider.stpLocation() semplifica questo processo compilando lo schema di stringhe di una ubicazione mancante con il parametro Namespace ed inserendo un repository mancante dal repository predefinito identificato per il provider dal client. (Vedere il metodo StpProvider.setDefaultRepository nelle informazioni Javadoc).
<dominio>.<spazionomi>:<nome-oggetto>@<nome-repository>Nel seguente esempio, viene considerato il dominio predefinito:
"stream:mystream@projects"
L'interfaccia StpProvider include i metodi per la creazione di un StpLocation in formati quali USER_FRIENDLY_LOCATION e STABLE_LOCATION con i metodi userFriendlySelector e stableSelector. L'interfaccia StpResource include i metodi getStableLocation e getUserFriendlyLocation che restituiscono i valori delle proprietà STABLE_LOCATION e USER_FRIENDLY_LOCATION definita dal proxy. Se il client necessita un'ubicazione in un formato specifico dovrebbe richiedere la proprietà risorsa che corrisponde a quel formato e non utilizzare StpLocation.stpLocation().