Example #1
0
 /**
  * Set the definitions of the parameters in the compiled function, as an array.
  *
  * @param fn the compiled object representing the user-written function
  */
 public void setParameterDefinitions(UserFunction fn) {
   UserFunctionParameter[] params = new UserFunctionParameter[getNumberOfArguments()];
   fn.setParameterDefinitions(params);
   int count = 0;
   AxisIterator kids = iterateAxis(Axis.CHILD);
   while (true) {
     NodeInfo node = kids.next();
     if (node == null) {
       return;
     }
     if (node instanceof XSLParam) {
       UserFunctionParameter param = new UserFunctionParameter();
       params[count++] = param;
       param.setRequiredType(((XSLParam) node).getRequiredType());
       param.setVariableQName(((XSLParam) node).getVariableQName());
       param.setSlotNumber(((XSLParam) node).getSlotNumber());
       ((XSLParam) node).fixupBinding(param);
       int refs = ExpressionTool.getReferenceCount(fn.getBody(), param, false);
       param.setReferenceCount(refs);
     }
   }
 }