Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## net.sf.saxon.expr.instruct
Class UserFunctionParameter

    java.lang.Object
      net.sf.saxon.expr.instruct.UserFunctionParameter

All Implemented Interfaces:
  Serializable, Binding

    public class UserFunctionParameter

extends Object
implements Binding, Serializable

Run-time object representing a formal argument to a user-defined function

See Also:
  Serialized Form

Constructor Summary
`UserFunctionParameter()` Create a UserFunctionParameter

Method Summary
`void` | `addReference(boolean isLoopingReference)` Register a variable reference that refers to the variable bound in this expression
`ValueRepresentation` | `evaluateVariable(XPathContext context)` Evaluate this function parameter
`IntegerValue[]` | `getIntegerBoundsForVariable()` If the variable is bound to an integer, get the minimum and maximum possible values.
`int` | `getLocalSlotNumber()` If this is a local variable held on the local stack frame, return the corresponding slot number.
`int` | `getReferenceCount()` Get the (nominal) number of references within the function body to this parameter, where a reference inside a loop is counted as multiple references
`SequenceType` | `getRequiredType()` Get the required type of this function parameter
`StructuredQName` | `getVariableQName()` Get the name of this parameter
`boolean` | `isAssignable()` Test whether it is permitted to assign to the variable using the saxon:assign extension element.
`boolean` | `isGlobal()` Indicate whether the binding is local or global.
`boolean` | `isIndexedVariable()` Ask whether this parameter requires support for indexing
`void` | `setIndexedVariable(boolean indexed)` Indicate that this parameter requires (or does not require) support for indexing
`void` | `setReferenceCount(int count)` Set the (nominal) number of references within the function body to this parameter, where a reference inside a loop is counted as multiple references
`void` | `setRequiredType(SequenceType type)` Set the required type of this function parameter
`void` | `setSlotNumber(int slot)` Set the slot number to be used by this parameter
`void` | `setVariableQName(StructuredQName name)` Set the name of this parameter

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### UserFunctionParameter

    public UserFunctionParameter()

  Create a UserFunctionParameter

Method Detail

### isGlobal

    public final boolean isGlobal()

  Indicate whether the binding is local or global. A global binding is one that has a fixed value for the life of a query or transformation; any other binding is local.

  Specified by:
    `isGlobal` in interface `Binding`
  Returns:
    false (always)

### isAssignable

    public final boolean isAssignable()

  Test whether it is permitted to assign to the variable using the saxon:assign extension element. This will only be for an XSLT global variable where the extra attribute saxon:assignable="yes" is present.

  Specified by:
    `isAssignable` in interface `Binding`
  Returns:
    false (always)

### setSlotNumber

    public void setSlotNumber(int slot)

  Set the slot number to be used by this parameter

  Parameters:
    `slot` - the slot number, that is, the position of the parameter value within the local stack frame

### getLocalSlotNumber

    public int getLocalSlotNumber()

  If this is a local variable held on the local stack frame, return the corresponding slot number. In other cases, return -1.

  Specified by:
    `getLocalSlotNumber` in interface `Binding`
  Returns:
    the slot number, indicating the position of the parameter on the local stack frame

### setRequiredType

    public void setRequiredType(SequenceType type)

  Set the required type of this function parameter

  Parameters:
    `type` - the declared type of the parameter

### getRequiredType

    public SequenceType getRequiredType()

  Get the required type of this function parameter

  Specified by:
    `getRequiredType` in interface `Binding`
  Returns:
    the declared type of the parameter

### getIntegerBoundsForVariable

    public IntegerValue[] getIntegerBoundsForVariable()

  If the variable is bound to an integer, get the minimum and maximum possible values. Return null if unknown or not applicable

  Specified by:
    `getIntegerBoundsForVariable` in interface `Binding`
  Returns:
    a pair of integers containing the minimum and maximum values for the integer value; or null if the value is not an integer or the range is unknown

### setVariableQName

    public void setVariableQName(StructuredQName name)

  Set the name of this parameter

  Parameters:
    `name` - the name of the parameter

### getVariableQName

    public StructuredQName getVariableQName()

  Get the name of this parameter

  Specified by:
    `getVariableQName` in interface `Binding`
  Returns:
    the name of this parameter

### addReference

    public void addReference(boolean isLoopingReference)

  Description copied from interface: `Binding`
  Register a variable reference that refers to the variable bound in this expression

  Specified by:
    `addReference` in interface `Binding`
  Parameters:
    `isLoopingReference` - - true if the reference occurs within a loop, such as the predicate of a filter expression

### setReferenceCount

    public void setReferenceCount(int count)

  Set the (nominal) number of references within the function body to this parameter, where a reference inside a loop is counted as multiple references

  Parameters:
    `count` - the nominal number of references

### getReferenceCount

    public int getReferenceCount()

  Get the (nominal) number of references within the function body to this parameter, where a reference inside a loop is counted as multiple references

  Returns:
    the nominal number of references

### setIndexedVariable

    public void setIndexedVariable(boolean indexed)

  Indicate that this parameter requires (or does not require) support for indexing

  Parameters:
    `indexed` - true if support for indexing is required. This will be set if the parameter is used in a filter expression such as $param[@a = 17]

### isIndexedVariable

    public boolean isIndexedVariable()

  Ask whether this parameter requires support for indexing

  Returns:
    true if support for indexing is required. This will be set if the parameter is used in a filter expression such as $param[@a = 17]

### evaluateVariable

    public ValueRepresentation evaluateVariable(XPathContext context)
                                         throws XPathException

  Evaluate this function parameter

  Specified by:
    `evaluateVariable` in interface `Binding`
  Parameters:
    `context` - the XPath dynamic context
  Returns:
    the value of the parameter
  Throws:
    `XPathException` - if an error occurs

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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