org.exist.xquery
Class AbstractInternalModule

java.lang.Object
  extended byorg.exist.xquery.AbstractInternalModule
All Implemented Interfaces:
InternalModule, Module
Direct Known Subclasses:
ExistModule, ModuleImpl, RequestModule, ResponseModule, SessionModule, SystemModule, TextModule, TransformModule, UtilModule, ValidationModule, XMLDBModule

public abstract class AbstractInternalModule
extends java.lang.Object
implements InternalModule

Abstract base class for an InternalModule. Functions are defined in an array of FunctionDef, which is passed to the constructor. A single implementation class can be registered for more than one function signature, given that the signatures differ in name or the number of expected arguments. It is thus possible to implement similar XQuery functions in one single class.

Author:
Wolfgang Meier (wolfgang@exist-db.org)

Field Summary
 
Fields inherited from interface org.exist.xquery.Module
REQUEST_FUNCTION_NS, RESPONSE_FUNCTION_NS, SESSION_FUNCTION_NS, SYSTEM_FUNCTION_NS, TEXT_FUNCTION_NS, TRANSFORM_FUNCTION_NS, UTIL_FUNCTION_NS, XMLDB_FUNCTION_NS
 
Constructor Summary
AbstractInternalModule(FunctionDef[] functions)
           
 
Method Summary
 Variable declareVariable(QName qname, java.lang.Object value)
           
 Variable declareVariable(Variable var)
           
abstract  java.lang.String getDefaultPrefix()
          Returns an optional default prefix (used if no prefix is supplied with the "import module" directive).
 FunctionDef getFunctionDef(QName qname, int arity)
          Returns the implementing class for the function identified by qname or null if it is not defined.
 java.util.List getFunctionsByName(QName qname)
          Returns all functions defined in this module matching the specified qname.
abstract  java.lang.String getNamespaceURI()
          Returns the namespace URI that uniquely identifies this module.
 java.util.Iterator getSignaturesForFunction(QName qname)
          Try to find the signature of the function identified by its QName.
 boolean isInternalModule()
          Is this an internal module?
 boolean isVarDeclared(QName qname)
           
 FunctionSignature[] listFunctions()
          Returns the signatures of all functions defined within this module.
 void reset()
          Reset the module's internal state for being reused.
 Variable resolveVariable(QName qname)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.exist.xquery.Module
getDescription
 

Constructor Detail

AbstractInternalModule

public AbstractInternalModule(FunctionDef[] functions)
Method Detail

isInternalModule

public boolean isInternalModule()
Description copied from interface: Module
Is this an internal module?

Specified by:
isInternalModule in interface Module
Returns:
True if is internal module.

getNamespaceURI

public abstract java.lang.String getNamespaceURI()
Description copied from interface: Module
Returns the namespace URI that uniquely identifies this module.

Specified by:
getNamespaceURI in interface Module
Returns:
namespace URI

getDefaultPrefix

public abstract java.lang.String getDefaultPrefix()
Description copied from interface: Module
Returns an optional default prefix (used if no prefix is supplied with the "import module" directive).

Specified by:
getDefaultPrefix in interface Module
Returns:
optional default prefix

listFunctions

public FunctionSignature[] listFunctions()
Description copied from interface: Module
Returns the signatures of all functions defined within this module.

Specified by:
listFunctions in interface Module
Returns:
signatures of all functions

getSignaturesForFunction

public java.util.Iterator getSignaturesForFunction(QName qname)
Description copied from interface: Module
Try to find the signature of the function identified by its QName.

Specified by:
getSignaturesForFunction in interface Module
Parameters:
qname -
Returns:
the function signature or null if the function is not defined.

getFunctionDef

public FunctionDef getFunctionDef(QName qname,
                                  int arity)
Description copied from interface: InternalModule
Returns the implementing class for the function identified by qname or null if it is not defined. Called by FunctionFactory.

Specified by:
getFunctionDef in interface InternalModule
Parameters:
qname -
Returns:
implementing class for the function

getFunctionsByName

public java.util.List getFunctionsByName(QName qname)
Description copied from interface: InternalModule
Returns all functions defined in this module matching the specified qname.

Specified by:
getFunctionsByName in interface InternalModule
Parameters:
qname -
Returns:
all functions defined in this module

declareVariable

public Variable declareVariable(QName qname,
                                java.lang.Object value)
                         throws XPathException
Specified by:
declareVariable in interface Module
Throws:
XPathException

declareVariable

public Variable declareVariable(Variable var)
Specified by:
declareVariable in interface Module

resolveVariable

public Variable resolveVariable(QName qname)
                         throws XPathException
Specified by:
resolveVariable in interface Module
Throws:
XPathException

isVarDeclared

public boolean isVarDeclared(QName qname)
Specified by:
isVarDeclared in interface Module

reset

public void reset()
Description copied from interface: Module
Reset the module's internal state for being reused.

Specified by:
reset in interface Module


Copyright (C) Wolfgang Meier. All rights reserved.