Cada recurso dispone de una ubicación que lo identifica de forma exclusiva respecto al servidor. El objeto StpLocation de la API de Rational CM representa la ubicación de un recurso y es necesario para construir un proxy para el recurso. El proveedor es el encargado de construir un objeto StpLocation a partir de una representación de serie de la ubicación. La sintaxis para la especificación de ubicaciones de recurso en esta representación de serie se define mediante la API de Rational CM en la información del Javadoc de StpLocation. El argumento de serie para operaciones Provider.location(...), StpProvider.stpLocation(...) y StpPovider.buildProxy(...) debe ajustarse a la sintaxis especificada en StpLocation. La sintaxis de serie de la ubicación de la API de CM es una ampliación de la sintaxis del selector de objetos de ClearCase.
Por ejemplo, la serie de ubicación de un archivo o directorio de recurso en una máquina de cliente es el nombre de la vía de acceso del archivo. Este formato se utiliza en el fragmento de código siguiente para extraer un archivo denominado sample_file.txt.
// Given a CcProvider object, m_provider, which must first be instantiated, // create a Location object from a unique file pathname. // Use "C:\\sample_view\\sample_dir\\sample_file.txt" on Windows, // or "/sample_view/sample_dir/sample_file.txt" on UNIX. StpLocation fileLoc = m_provider.stpLocation("C:\\sample_view\\sample_dir\\sample_file.txt"); // Create the ControllableResource proxy for the client - a versioned file // is a ControllableResource CcControllableResource my_ctresource = m_provider.ccControllableResource(fileLoc); // Use the proxy to work with the controllable resource. // For example, check out the file: my_ctresource.doCheckout();
Como se ilustra en este ejemplo, el método provider.stpLocation() devuelve un objeto StpLocation que corresponde a una especificación de ubicación. El objeto StpLocation (fileLoc) se pasa posteriormente a Provider.ccControllableResource() para construir un proxy para el recurso en dicha ubicación.
StpLocation activityLoc = provider.stpLocation("cc.activity:my_fix_a_bug@/vobs/projects"); CcActivity act = provider.ccProvider().ccActivity(activityLoc);
StpLocation loc = provider.stpLocation("cq.record:Defect/SAMPL00000234@2003.06.00/SAMPL"); CqRecord record = provider.cqProvider().cqRecord(loc);
La interfaz StpLocation también proporciona métodos para analizar y crear series que contengan especificaciones de ubicación.
Es posible obtener un objeto StpLocation de cada proxy, el cual corresponde a la ubicación del objeto al que hace referencia dicho proxy. StpLocation se amplía para proporcionar el proveedor desde el cual se ha originado el objeto StpLocation. Para obtener más información sobre objetos StpLocation y la sintaxis de especificación de ubicación, consulte Sintaxis de ubicación. Para obtener más ejemplos sobre la utilización de una serie de ubicación o el establecimiento de propiedades, consulte Grabación de propiedades.