Class KeyDefinitionSet

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

public class KeyDefinitionSet extends Object
A set of xsl:key definitions in a stylesheet that share the same name
  • Constructor Details

    • 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 Details

    • 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)
    • isComposite

      public boolean isComposite()
      Ask whether this is a composite key
      Returns:
      true if the key is composite
    • 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
    • setReusable

      public void setReusable(boolean reusable)
      Say whether this key definition set is reusable across transformations, that is, if the index built for a particular document is shareable across transformations. This will only be the case if the key has no dependencies on global variables or parameters in the stylesheet
      Parameters:
      reusable - set to true if the index can safely be shared and reused
    • isReusable

      public boolean isReusable()
      Ask whether this key definition set is reusable across transformations, that is, if the index built for a particular document is shareable across transformations. This will only be the case if the key has no dependencies on global variables or parameters in the stylesheet
      Returns:
      true if the index can safely be shared and reused