has key
Full Description
swirl
Syntax
  shelf test:
     shelf-type? shelf-name (has | hasnt) key string-expression
  attribute shelf test:
     specified? attribute (has | hasnt)  key string-expression
  or
  specified? data-attributes (has | hasnt) key string-expression


Purpose

has key is a test that determines if a shelf contains a key with the given string-expression.

hasnt key returns the opposite results.

has key can also be applied to an attribute shelf in a similar fashion.

The has key test determines whether an element has an attribute declared for it. It can be used on both the data-attributes and attributes shelves.

For example, the following code shows how has key can be used to test for a declared attribute:

  global stream id-name
  ...
  output attributes key id-name
     when attributes has key id-name and
        attribute key id-name isnt implied

In this example, the has key test is used to determine whether the switch shelf "assoc-list" currently contains an item with the name referred to by "%x(curr-key)".

  global switch assoc-list
  global counter item-no
  ...
  find "{" [any except "}"]+= curr-key "}"
    do when assoc-list has key "%x(curr-key)"
      set item-no to item of assoc-list ^ "%x(curr-key)"
    else
      ; An index of 0 means that the key wasn't found.
      set item-no to 0
    done

Copyright © OmniMark Technologies Corporation, 1988-1998.