FileDocCategorySizeDatePackage
FuncExtFunctionAvailable.javaAPI DocJava SE 6 API3300Tue Jun 10 00:23:14 BST 2008com.sun.org.apache.xpath.internal.functions

FuncExtFunctionAvailable

public class FuncExtFunctionAvailable extends FunctionOneArg
Execute the ExtFunctionAvailable() function.
xsl.usage
advanced

Fields Summary
static final long
serialVersionUID
private transient FunctionTable
m_functionTable
Constructors Summary
Methods Summary
public com.sun.org.apache.xpath.internal.objects.XObjectexecute(com.sun.org.apache.xpath.internal.XPathContext xctxt)
Execute the function. The function must return a valid object.

param
xctxt The current execution context.
return
A valid XObject.
throws
javax.xml.transform.TransformerException


                            
       
  

    String prefix;
    String namespace;
    String methName;

    String fullName = m_arg0.execute(xctxt).str();
    int indexOfNSSep = fullName.indexOf(':");

    if (indexOfNSSep < 0)
    {
      prefix = "";
      namespace = Constants.S_XSLNAMESPACEURL;
      methName = fullName;
    }
    else
    {
      prefix = fullName.substring(0, indexOfNSSep);
      namespace = xctxt.getNamespaceContext().getNamespaceForPrefix(prefix);
      if (null == namespace)
        return XBoolean.S_FALSE;
        methName = fullName.substring(indexOfNSSep + 1);
    }

    if (namespace.equals(Constants.S_XSLNAMESPACEURL))
    {
      try
      {
        if (null == m_functionTable) m_functionTable = new FunctionTable();
        return m_functionTable.functionAvailable(methName) ? XBoolean.S_TRUE : XBoolean.S_FALSE;
      }
      catch (Exception e)
      {
        return XBoolean.S_FALSE;
      }
    }
    else
    {
      //dml
      ExtensionsProvider extProvider = (ExtensionsProvider)xctxt.getOwnerObject();
      return extProvider.functionAvailable(namespace, methName)
             ? XBoolean.S_TRUE : XBoolean.S_FALSE;
    }
  
public voidsetFunctionTable(com.sun.org.apache.xpath.internal.compiler.FunctionTable aTable)
The function table is an instance field. In order to access this instance field during evaluation, this method is called at compilation time to insert function table information for later usage. It should only be used during compiling of XPath expressions.

param
aTable an instance of the function table

          m_functionTable = aTable;