O CM API distingue entre um CcFile, que é o arquivo em uma visualização que as operações acima são executadas, do elemento subjacente ClearCase e da versão (CcElement e CcVersion) ao quais ele está associado.
O método CcFile.doVersionControl() cria um recurso CcElement e um recurso CcVersion inicial, que terão o mesmo conteúdo do CcFile.
// Obter o provedor ClearCase.
provedor CcProvider = ...;
// Criar um proxy CcFile para o arquivo com registro de saída.
// Primeiro, crie uma instância de "Arquivo" Java antigo simples a partir do caminho do arquivo.
// Em seguida crie uma instância StpLocation desse arquivo.
// Por fim, crie um proxy CcFile do local.
File file = new File("C:/my_views/example_view/avob/example.txt");
StpLocation fileLoc = provider.filePathLocation(Domain.CLEAR_CASE, file);
CcFile testFile = provider.ccFile(fileLoc);
// Crie um pedido de propriedade para as propriedades do arquivo nas quais estamos
// interessado. Leia essas propriedades. Note que os valores de propriedade
// resultantes estão disponíveis *somente* no proxy CcFile retornado pelo
// doReadProperties(), que não está no proxy original.
PropertyRequest wantedProps = new PropertyRequest(
CcFile.IS_VERSION_CONTROLLED,
CcFile.IS_CHECKED_OUT);
testFile = (CcFile) testFile.doReadProperties(wantedProps);
if ( ! testFile.getIsVersionControlled()) {
// O arquivo ainda não está sob o controle de versão, portanto, controle-o.
// Ao mesmo tempo, leia novamente as propriedades nas quais estamos interessados.
testFile = (CcFile) testFile.doVersionControl(wantedProps);
}
if ( ! testFile.getIsCheckedOut()) {
// Ainda não foi efetuado o registro de saída do arquivo, portanto, efetue o registro.
// Ao mesmo tempo, leia novamente as propriedades nas quais estamos interessados.
testFile = testFile.doCcCheckout(null, wantedProps);
}
// Verifique se o arquivo agora está na versão controlada e efetue o registro de saída.
assert(testFile.getIsVersionControlled() == true);
assert(testFile.getIsCheckedOut() == true);
Determinadas operações nos recursos em uma visualização na Web local podem interagir ou não com um servidor. Por exemplo:
A própria interface Recurso não fornece um método para criar o recurso subjacente, pois alguns recursos não podem ser criados pelo usuário. Note que a distinção entre a criação do proxy, que se trata de instanciar um objeto Recurso, e criar o recurso, que deve ser feita chamando o método doCreateResource() ou doCreateVersionControlledResource().