16 #if !defined(XPATHFUNCTIONTABLE_HEADER_GUARD_1357924680)
17 #define XPATHFUNCTIONTABLE_HEADER_GUARD_1357924680
43 XALAN_CPP_NAMESPACE_BEGIN
92 enum { InvalidFunctionNumberID = -1, TableSize = 36 };
110 m_memoryManager = &theManager;
133 const int theFunctionID =
134 getFunctionIndex(theFunctionName);
136 if (theFunctionID != InvalidFunctionNumberID)
138 return *m_functionTable[theFunctionID];
159 assert(theFunctionID >= 0 && theFunctionID < TableSize);
160 assert(m_functionTable[theFunctionID] != 0);
162 return *m_functionTable[theFunctionID];
176 if (theFunctionID >= 0 && theFunctionID < TableSize)
179 s_functionNames[theFunctionID].m_name,
180 s_functionNames[theFunctionID].m_size);
195 return getFunctionIndex(theName);
209 InstallFunction(theFunctionName.
c_str(), theFunction);
221 return UninstallFunction(theFunctionName.
c_str());
232 const XalanDOMChar* theFunctionName,
242 UninstallFunction(
const XalanDOMChar* theFunctionName);
253 return getFunctionIndex(theFunctionName) != InvalidFunctionNumberID ?
true :
false;
256 #if defined(XALAN_NO_MEMBER_TEMPLATES)
266 getInstalledFunctionNames(InstalledFunctionNameVectorType& theVector)
const
270 for (
int i = 0; i < TableSize; ++i)
272 if (m_functionTable[i] != 0)
275 s_functionNames[i].m_name,
276 s_functionNames[i].m_size);
289 template<
class OutputIteratorType>
295 for (
int i = 0; i < TableSize; ++i)
297 if (m_functionTable[i] != 0)
300 s_functionNames[i].m_name,
301 s_functionNames[i].m_size);
303 *theIterator = theString;
323 static const XalanDOMChar s_id[];
326 static const XalanDOMChar s_key[];
329 static const XalanDOMChar s_not[];
332 static const XalanDOMChar s_sum[];
335 static const XalanDOMChar s_lang[];
338 static const XalanDOMChar s_last[];
341 static const XalanDOMChar s_name[];
344 static const XalanDOMChar s_true[];
347 static const XalanDOMChar s_count[];
350 static const XalanDOMChar s_false[];
353 static const XalanDOMChar s_floor[];
356 static const XalanDOMChar s_round[];
359 static const XalanDOMChar s_concat[];
362 static const XalanDOMChar s_number[];
365 static const XalanDOMChar s_string[];
368 static const XalanDOMChar s_boolean[];
371 static const XalanDOMChar s_ceiling[];
374 static const XalanDOMChar s_current[];
377 static const XalanDOMChar s_contains[];
380 static const XalanDOMChar s_document[];
383 static const XalanDOMChar s_position[];
386 static const XalanDOMChar s_substring[];
389 static const XalanDOMChar s_translate[];
392 static const XalanDOMChar s_localName[];
395 static const XalanDOMChar s_generateId[];
398 static const XalanDOMChar s_startsWith[];
401 static const XalanDOMChar s_formatNumber[];
404 static const XalanDOMChar s_namespaceUri[];
407 static const XalanDOMChar s_stringLength[];
410 static const XalanDOMChar s_normalizeSpace[];
413 static const XalanDOMChar s_substringAfter[];
416 static const XalanDOMChar s_systemProperty[];
419 static const XalanDOMChar s_substringBefore[];
422 static const XalanDOMChar s_elementAvailable[];
425 static const XalanDOMChar s_functionAvailable[];
428 static const XalanDOMChar s_unparsedEntityUri[];
441 return getFunctionIndex(
447 getFunctionIndex(
const XalanDOMChar* theName)
449 return getFunctionIndex(
456 const XalanDOMChar* theName,
457 StringSizeType theNameLength);
461 const Function* m_functionTable[TableSize];
463 const Function**
const m_functionTableEnd;
466 static const FunctionNameTableEntry*
const s_lastFunctionName;
471 XALAN_CPP_NAMESPACE_END
475 #endif // XPATHFUNCTIONTABLE_HEADER_GUARD_1357924680
size_type length() const
Definition: XalanDOMString.hpp:209
const XalanDOMChar * m_name
Definition: XPathFunctionTable.hpp:313
Definition: Function.hpp:52
static MemoryManager & getDefaultXercesMemMgr()
void setMemoryManager(MemoryManagerType &theManager)
Definition: XPathFunctionTable.hpp:108
XALAN_CPP_NAMESPACE_BEGIN typedef XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager MemoryManagerType
Definition: XalanMemoryManagement.hpp:39
void InstallFunction(const XalanDOMString &theFunctionName, const Function &theFunction)
Insert a named function into the function table.
Definition: XPathFunctionTable.hpp:205
Class defines a table of functions that can be called in XPath expresions.
Definition: XPathFunctionTable.hpp:88
Function::LocatorType LocatorType
Definition: XPathFunctionTable.hpp:54
XalanDOMString & assign(const XalanDOMChar *theSource)
Definition: XalanDOMString.hpp:364
static const SizeType s_functionNamesSize
Definition: XPathFunctionTable.hpp:434
const XalanDOMString & idToName(int theFunctionID, XalanDOMString &theResult) const
Map a function ID to the corresponding name.
Definition: XPathFunctionTable.hpp:172
Functor to delete objects, used in STL iteration algorithms.
Definition: STLHelper.hpp:101
Definition: XPathFunctionTable.hpp:311
const XalanDOMChar * c_str() const
Definition: XalanDOMString.hpp:314
void push_back(XalanDOMChar theChar)
Definition: XalanDOMString.hpp:503
XERCES_CPP_NAMESPACE_QUALIFIER Locator LocatorType
Definition: Function.hpp:56
Exception class thrown when an unknown function is encountered.
Definition: XPathFunctionTable.hpp:50
size_t SizeType
Definition: XPathFunctionTable.hpp:94
XalanDOMString::size_type StringSizeType
Definition: XPathFunctionTable.hpp:95
DeleteFunctor< Function > DeleteFunctorType
Definition: XPathFunctionTable.hpp:96
Definition: XalanDOMString.hpp:42
bool isInstalledFunction(const XalanDOMString &theFunctionName) const
Whether a named function is in the function table.
Definition: XPathFunctionTable.hpp:251
StringSizeType m_size
Definition: XPathFunctionTable.hpp:315
const Function & operator[](const XalanDOMString &theFunctionName) const
Retrieve the function object for a specified function name.
Definition: XPathFunctionTable.hpp:131
Exception class thrown when an installFunction() is called with a function name that is not supported...
Definition: XPathFunctionTable.hpp:73
bool UninstallFunction(const XalanDOMString &theFunctionName)
Remove a named function from the function table.
Definition: XPathFunctionTable.hpp:219
unsigned int size_type
Definition: XalanDOMString.hpp:53
#define XALAN_XPATH_EXPORT
Definition: XPathDefinitions.hpp:33
int nameToID(const XalanDOMString &theName) const
Map a function name to the corresponding ID number.
Definition: XPathFunctionTable.hpp:193
Definition: XalanXPathException.hpp:44
void getInstalledFunctionNames(OutputIteratorType theIterator) const
Add a list of the names of installed functions to a vector of names.
Definition: XPathFunctionTable.hpp:291
const Function & operator[](int theFunctionID) const
Retrieve the function object for a specified function ID number.
Definition: XPathFunctionTable.hpp:157