2.2. FILTERING

Um filtro é uma expressão booleana, consistindo de uma ou mais declarações sobre a presença ou valor dos atributos de um escopo do objeto gerenciado. Cada declaração pode ser um teste de regularidade, sequência, presença ou um conjunto de comparações. Declarações de valor-atributo podem requerer que as seguintes regras de igualdade sejam encontradas:

  • Equality: atributo valor é igual ao que é declarado.

  • Greater or equal: atributo valor fornecido é maior ou igual ao valor do atributo.

  • Less or equal: atributo valor fornecido é menor ou igual ao valor do atributo.

  • Present: o atributo esta presente.

  • Substrings: atributo valor inclui a especificação de substrings na ordem dada.

  • Subset of: todos os membros declarados estão presentes no atributo.

  • Superset of: todos os membros do atributo estão presentes no atributo declarado.

  • Non-null-set intersection: pelo menos um dos membros declarados está presente no atributo.

  • O filtro pode ser um teste simples, chamar um item do filtro, aplicar para cda atributo valor para ser testado. Muitos testes complexos podem ser feitos combinando itens de filtros individuais, usando AND, OR e NOT.

    O teste de filtro é aplicado da seguinte maneira:

    1. O filtro é aplicado para todos os objetos gerenciados selecionados pelo parâmetro de escopo.

    2. Para cada objeto selecionado, o filtro inclui um teste de um ou mais atributos.

    3. Declarações sobre o valor de um atributo são avaliadas para concordar com a união das regras associadas com a sintaxe do atributo. Estas regras são especificadas na cláusula MATCHES FOR do atributo template.

    4. Se uma declaração atributo-valor está presente no filtro e não está presente no objeto, então o resultado do teste é falso.

    5. O objeto ou objetos para o qual o teste de filtro avalia para verdadeiro são selecionadas para a aplicação da operação.