16 #if !defined(STYLESHEETEXECUTIONCONTEXT_HEADER_GUARD_1357924680)
17 #define STYLESHEETEXECUTIONCONTEXT_HEADER_GUARD_1357924680
47 #if defined(XALAN_AUTO_PTR_REQUIRES_DEFINITION)
67 XALAN_CPP_NAMESPACE_BEGIN
108 #if defined(XALAN_STRICT_ANSI_HEADERS)
114 #if defined(XALAN_NO_STD_NAMESPACE)
139 const XalanNode* sourceNode = 0)
const = 0;
152 const XalanNode* sourceNode = 0)
const = 0;
165 const XalanNode* sourceNode = 0)
const = 0;
174 getQuietConflictWarnings()
const = 0;
183 getCopyTextNodesOnly()
const = 0;
192 pushCopyTextNodesOnly(
bool copyTextNodesOnly) = 0;
199 popCopyTextNodesOnly() = 0;
213 m_executionContext(executionContext)
220 m_executionContext.popCopyTextNodesOnly();
236 #if !defined(XALAN_RECURSIVE_STYLESHEET_EXECUTION)
242 pushProcessCurrentAttribute(
bool processAttribute) = 0;
248 popProcessCurrentAttribute() = 0;
256 pushSkipElementAttributes(
bool skipAttributes) = 0;
263 getSkipElementAttributes()
const = 0;
269 popSkipElementAttributes() = 0;
277 pushExecuteIf(
bool executeIf) = 0;
296 getRootDocument()
const = 0;
306 setRootDocument(
XalanNode* theDocument) = 0;
322 getCurrentMode()
const = 0;
330 pushCurrentMode(
const XalanQName* theMode) = 0;
345 getCurrentTemplate()
const = 0;
353 pushCurrentTemplate(
const ElemTemplate* theTemplate) = 0;
356 popCurrentTemplate() = 0;
358 #if defined(XALAN_RECURSIVE_STYLESHEET_EXECUTION)
363 class PushAndPopCurrentTemplate
367 PushAndPopCurrentTemplate(
370 m_executionContext(executionContext)
375 ~PushAndPopCurrentTemplate()
377 m_executionContext.popCurrentTemplate();
391 isElementPending()
const = 0;
401 replacePendingAttribute(
402 const XalanDOMChar* theName,
403 const XalanDOMChar* theNewType,
404 const XalanDOMChar* theNewValue) = 0;
412 getFormatterListener()
const = 0;
426 popOutputContext() = 0;
441 m_executionContext(theExecutionContext)
443 m_executionContext.pushOutputContext(theNewListener);
448 m_executionContext.popOutputContext();
476 const XalanDOMChar* value) = 0;
484 copyNamespaceAttributes(
const XalanNode& src) = 0;
494 getResultPrefixForNamespace(
const XalanDOMString& theNamespace)
const = 0;
504 getResultNamespaceForPrefix(
const XalanDOMString& thePrefix)
const = 0;
532 getIndent()
const = 0;
540 setIndent(
int indentAmount) = 0;
561 returnXPath(
const XPath* xpath) = 0;
570 const XPath* xpath = 0) :
580 m_context.returnXPath(m_xpath);
593 const XPath*
const temp = m_xpath;
605 m_context.returnXPath(m_xpath);
615 const XPath* m_xpath;
644 #if defined(XALAN_RECURSIVE_STYLESHEET_EXECUTION)
698 #if defined(XALAN_RECURSIVE_STYLESHEET_EXECUTION)
749 pushContextMarker() = 0;
755 popContextMarker() = 0;
757 #if defined(XALAN_RECURSIVE_STYLESHEET_EXECUTION)
762 class PushAndPopContextMarker
767 m_executionContext(executionContext)
772 PushAndPopContextMarker(
774 int& currentStackFrameIndex) :
775 m_executionContext(executionContext)
782 ~PushAndPopContextMarker()
784 m_executionContext.popContextMarker();
788 getExecutionContext()
const
790 return m_executionContext;
803 resolveTopLevelParams() = 0;
809 clearTopLevelParams() = 0;
811 #if defined(XALAN_RECURSIVE_STYLESHEET_EXECUTION)
812 class ResolveAndClearTopLevelParams
817 m_executionContext(executionContext)
819 m_executionContext.resolveTopLevelParams();
822 ~ResolveAndClearTopLevelParams()
824 m_executionContext.clearTopLevelParams();
846 virtual void beginParams() = 0;
851 virtual void endParams() = 0;
872 getParamVariable(
const XalanQName& theName) = 0;
888 popElementFrame() = 0;
890 #if defined(XALAN_RECURSIVE_STYLESHEET_EXECUTION)
895 class PushAndPopElementFrame
899 PushAndPopElementFrame(
902 m_executionContext(executionContext)
907 ~PushAndPopElementFrame()
909 m_executionContext.popElementFrame();
924 getGlobalStackFrameIndex()
const = 0;
933 getCurrentStackFrameIndex()
const = 0;
942 pushCurrentStackFrameIndex(
int currentStackFrameIndex = -1) = 0;
948 popCurrentStackFrameIndex() = 0;
960 m_executionContext(executionContext),
961 m_savedIndex(executionContext.getCurrentStackFrameIndex())
968 m_executionContext.popCurrentStackFrameIndex();
975 const int m_savedIndex;
978 #if defined(XALAN_RECURSIVE_STYLESHEET_EXECUTION)
982 class ParamsPushPop :
public PushAndPopContextMarker
989 PushAndPopContextMarker(executionContext)
991 doPush(xslCallTemplateElement);
997 int& savedStackFrameIndex) :
998 PushAndPopContextMarker(executionContext, savedStackFrameIndex)
1001 xslCallTemplateElement,
1002 savedStackFrameIndex);
1014 int stackFrameIndex);
1031 startDocument() = 0;
1053 startElement(
const XalanDOMChar* name) = 0;
1061 endElement(
const XalanDOMChar* name) = 0;
1072 const XalanDOMChar* ch,
1087 const XalanDOMChar* ch,
1097 comment(
const XalanDOMChar* data) = 0;
1106 processingInstruction(
1107 const XalanDOMChar* target,
1108 const XalanDOMChar* data) = 0;
1141 bool shouldCloneAttributes,
1144 #if !defined(XALAN_RECURSIVE_STYLESHEET_EXECUTION)
1150 beginCreateXResultTreeFrag(
1158 endCreateXResultTreeFrag() = 0;
1174 endFormatToText() = 0;
1184 createXResultTreeFrag(
1209 outputResultTreeFragment(
1219 getXSLNameSpaceURL()
const = 0;
1227 getXalanXSLNameSpaceURL()
const = 0;
1251 popElementRecursionStack() = 0;
1269 m_executionContext(executionContext)
1271 m_executionContext.pushOnElementRecursionStack(element);
1276 m_executionContext.popElementRecursionStack();
1300 eDefaultXMLIndentAmount = 0,
1301 eDefaultHTMLIndentAmount = 0
1322 getEscapeURLs()
const = 0;
1332 setEscapeURLs(eEscapeURLs value) = 0;
1352 virtual eOmitMETATag
1353 getOmitMETATag()
const = 0;
1363 setOmitMETATag(eOmitMETATag value) = 0;
1387 createFormatterToXML(
1390 bool doIndent =
false,
1391 int indent = eDefaultXMLIndentAmount,
1396 bool xmlDecl =
true,
1417 createFormatterToHTML(
1423 bool doIndent =
true,
1424 int indent = eDefaultHTMLIndentAmount,
1425 bool escapeURLs =
true,
1426 bool omitMetaTag =
false) = 0;
1435 createFormatterToText(
1439 #if defined(XALAN_RECURSIVE_STYLESHEET_EXECUTION)
1440 class BorrowReturnFormatterToText
1444 BorrowReturnFormatterToText(
1447 bool normalizeLinefeed =
true,
1448 bool handleIgnorableWhitespace =
true);
1450 ~BorrowReturnFormatterToText()
1452 assert(m_formatter != 0);
1454 m_executionContext.returnFormatterToText(m_formatter);
1460 assert(m_formatter != 0);
1462 return *m_formatter;
1468 assert(m_formatter != 0);
1487 friend class BorrowReturnFormatterToText;
1490 #if !defined(XALAN_RECURSIVE_STYLESHEET_EXECUTION)
1495 getNodeSorter() = 0;
1504 borrowNodeSorter() = 0;
1515 class BorrowReturnNodeSorter
1520 m_executionContext(executionContext),
1521 m_sorter(executionContext.borrowNodeSorter())
1523 assert(m_sorter != 0);
1526 ~BorrowReturnNodeSorter()
1528 assert(m_sorter != 0);
1530 m_executionContext.returnNodeSorter(m_sorter);
1536 assert(m_sorter != 0);
1544 assert(m_sorter != 0);
1572 createXalanNumberFormat() = 0;
1574 #if !defined(XALAN_RECURSIVE_STYLESHEET_EXECUTION)
1582 attributeSetNameIndex(0),
1583 matchingAttributeSetIndex(0) {}
1592 createUseAttributeSetIndexesOnStack() = 0;
1595 getUseAttributeSetIndexes() = 0;
1598 popUseAttributeSetIndexesFromStack() = 0;
1620 getInvoker()
const = 0;
1629 getTraceListeners()
const = 0;
1661 getTraceSelects()
const = 0;
1674 const XPath* xpath) = 0;
1719 const XalanDOMChar* theLHS,
1720 const XalanDOMChar* theRHS,
1735 const XalanDOMChar* theLHS,
1736 const XalanDOMChar* theRHS,
1737 const XalanDOMChar* theLocale,
1769 createPrintWriter(
StreamType& theStream) = 0;
1778 createPrintWriter(FILE* theStream) = 0;
1787 getCountersTable() = 0;
1812 charactersRaw(
const XalanNode& node) = 0;
1820 charactersRaw(
const XObjectPtr& xobject) = 0;
1927 #if !defined(XALAN_RECURSIVE_STYLESHEET_EXECUTION)
1930 createAndPushMutableNodeRefList() = 0;
1933 releaseAndPopMutableNodeRefList() = 0;
1936 pushXObjectPtr(
const XObjectPtr& xobjectPtr) = 0;
1939 popXObjectPtr() = 0;
1942 createAndPushNodesToTransformList(
const NodeRefListBase* nodeList) = 0;
1945 getNextNodeToTransform() = 0;
1948 popNodesToTransformList() = 0;
1955 getAndPushCachedString() = 0;
1962 getLastCachedString() = 0;
1972 getAndPopCachedString() = 0;
2067 #if defined(XALAN_RECURSIVE_STYLESHEET_EXECUTION)
2075 borrowFormatterToText() = 0;
2090 XALAN_CPP_NAMESPACE_END
2094 #endif // STYLESHEETEXECUTIONCONTEXT_HEADER_GUARD_1357924680