Propriedades e Metapropriedades

Os recursos possuem propriedades. Cada propriedade possui um nome, um tipo e um valor; ela pode ter outras metapropriedades associadas a ela (como seu valor, tamanho ou uma indicação de sua validade).

O valor de uma propriedade é de um tipo específico, como um número inteiro, cadeia, data, hora ou referência-para-recurso. O tipo de propriedade depende do nome da propriedade e da classe de recurso. O nome de uma propriedade é representado no ClearQuest CM API por um objeto PropertyNameList.PropertyName. PropertyNameList.PropertyName é um tipo parametrizado, em que o parâmetro específica o tipo do valor da propriedade. Algumas propriedades são definidas pelo WVCM, outras são definidas pelo ClearQuest CM API como extensões do WVCM e algumas também podem ser definidas pelo servidor e o aplicativo cliente.

No ClearQuest CM API, as metapropriedades são identificadas por um objeto MetaPropertyName. O MetaPropertyName pode ser utilizado para acessar uma metapropriedade de uma propriedade após sua leitura no servidor. Os MetaPropertyNames são definidos na classe StpProperty e em suas subclasses. Também são parametrizados com o tipo do valor da metapropriedade.

As metapropriedades PROPERTY_NAME e VALUE de uma propriedade são metapropriedades distintas. O valor de PROPERTY_NAME é utilizado para solicitar e acessar a propriedade e qualquer uma de suas metapropriedades. O VALUE é a metapropriedade solicitada, se apenas o nome da propriedade for utilizado no pedido.

O conjunto de nomes de propriedade compreendido por cada tipo de recurso definido por cada interface de proxy do CM API é uma série de campos de tipo PropertyName. Esses objetos PropertyName são utilizados para solicitar propriedades do servidor e para acessar os valores da propriedade depois de serem obtidos do servidor. O nome de cada campo PropertyName definido no CM API é um identificador em maiúsculas no qual as palavras são separadas por sublinhados (por exemplo, CONTENT_LENGTH).

Exemplos dos nomes das propriedades são Resource.COMMENT, Resource.DISPLAY_NAME, Resource.CREATION_DATE e Resource.CONTENT_LENGTH. Os nomes das propriedades são definidos na classe Recurso e em suas subclasses. As propriedades definidas em uma classe são apropriadas para a classe e todas as suas subclasses. Por exemplo, a classe CqQuery possui os nomes das propriedades CqQuery.DISPLAY_FIELDS, CqQuery.DYNAMIC_FILTERS, CqQuery.USER_FRIENDLY_LOCATION e CqQuery.STABLE_LOCATION, sendo que estas duas últimas propriedades foram herdadas da classe StpResource. Cada subclasse de proxy Recurso define campos de PropertyName que nomeiam e identificam as propriedades associadas a recursos do tipo representado pelo proxy.


Feedback