Cada recurso tem um local que o identifica exclusivamente para o servidor. O objeto StpLocation do Rational CM API representa o local de um recurso e é necessário para construir um proxy para o recurso. Um objeto StpLocation é construído pelo Provedor a partir de uma representação de cadeia do local. A sintaxe para especificar locais de recursos nesta representação de cadeia é definida pelo Rational CM API nas informações do Javadoc para StpLocation. O argumento de cadeia para as operações Provider.location(...), StpProvider.stpLocation(...), e StpPovider.buildProxy(...) devem estar em conformidade com a sintaxe especificada em StpLocation. A sintaxe de cadeia de local do CM API é uma extensão da sintaxe do seletor de objeto do ClearCase.
Por exemplo, a cadeia de local para um arquivo ou diretório de recursos em uma máquina cliente é o nome do caminho de arquivo. Esse formato é utilizado no fragmento de código a seguir para efetuar o registro de saída de um arquivo nomeado sample_file.txt.
// Dado um objeto CcProvider, m_provider, que deve ser primeiramente instanciado, // crie um objeto Local a partir de um nome de caminho de arquivo exclusivo. // Utilize "C:\\sample_view\\sample_dir\\sample_file.txt" no Windows // ou "/sample_view/sample_dir/sample_file.txt" no UNIX. StpLocation fileLoc = m_provider.stpLocation("C:\\sample_view\\sample_dir\\sample_file.txt"); // Crie o proxy ControllableResource para o cliente - um arquivo com versão // é um ControllableResource CcControllableResource my_ctresource = m_provider.ccControllableResource(fileLoc); // Utilize o proxy para trabalhar com o recurso controlável. // Por exemplo, efetue o registro de saída do arquivo: my_ctresource.doCheckout();
Como este exemplo ilustra, o método provider.stpLocation() retorna um objeto StpLocation que corresponde a uma especificação de local. O objeto StpLocation (fileLoc) é transmitido subseqüentemente a Provider.ccControllableResource() para construir um proxy para o recurso nesse local.
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);
A interface StpLocation também fornece métodos para analisar e compor cadeias que contêm especificações de local.
Um objeto StpLocation está disponível a partir de cada proxy, que corresponde ao local do objeto referido por esse proxy. StpLocation é estendido para fornecer o Provedor a partir do qual um objeto StpLocation se originou. Para obter mais informações sobre objetos StpLocation e a sintaxe de especificação de local, consulte Sintaxe de Local. Para obter exemplos adicionais sobre a utilização de uma cadeia de local e propriedades de configuração, consulte Gravando Propriedades.