net.sf.saxon.trans

## Class KeyDefinitionSet

- java.lang.Object
- - net.sf.saxon.trans.KeyDefinitionSet

- All Implemented Interfaces:
    Serializable

      public class KeyDefinitionSet
      extends Object
      implements Serializable

  A set of xsl:key definitions in a stylesheet that share the same name
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `KeyDefinitionSet(StructuredQName keyName, int keySetNumber)` Create a key definition set for keys sharing a given name

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addKeyDefinition(KeyDefinition keyDef)` Add a key definition to this set of key definitions.
    `String` | `getCollationName()` Get the name of the collation used for this key
    `List<KeyDefinition>` | `getKeyDefinitions()` Get the key definitions in this set
    `StructuredQName` | `getKeyName()` Get the name of the key definitions in this set (they all share the same name)
    `int` | `getKeySetNumber()` Get the KeySet number.
    `boolean` | `isBackwardsCompatible()` Ask if the keys are to be evaluated in backwards compatible mode
    `boolean` | `isRangeKey()` Ask if this is a range key

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### KeyDefinitionSet

          public KeyDefinitionSet(StructuredQName keyName,
                          int keySetNumber)

      Create a key definition set for keys sharing a given name
      Parameters:
        `keyName` - the name of the key definitions in this set
        `keySetNumber` - a unique number identifying this key definition set

  - ### Method Detail

    - #### addKeyDefinition

          public void addKeyDefinition(KeyDefinition keyDef)
                                throws XPathException

      Add a key definition to this set of key definitions. The caller is responsible for ensuring that all key definitions in a key definition set have the same name
      Parameters:
        `keyDef` - the key definition to be added
      Throws:
        `XPathException` - if the key definition uses a different collation from others in the set

    - #### getKeyName

          public StructuredQName getKeyName()

      Get the name of the key definitions in this set (they all share the same name)
      Returns:
        the name of these key definitions

    - #### getCollationName

          public String getCollationName()

      Get the name of the collation used for this key
      Returns:
        the collation name (a URI)

    - #### getKeySetNumber

          public int getKeySetNumber()

      Get the KeySet number. This uniquely identifies the KeyDefinitionSet within a KeyManager
      Returns:
        the unique number

    - #### getKeyDefinitions

          public List<KeyDefinition> getKeyDefinitions()

      Get the key definitions in this set
      Returns:
        the key definitions in this set

    - #### isBackwardsCompatible

          public boolean isBackwardsCompatible()

      Ask if the keys are to be evaluated in backwards compatible mode
      Returns:
        true if backwards compatibility is in force for at least one of the keys in the set

    - #### isRangeKey

          public boolean isRangeKey()

      Ask if this is a range key
      Returns:
        true if any of the keys in the set is defined as a range key

Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.