16 #if !defined(XALAN_XSLTENGINEIMPL_HEADER_GUARD)
17 #define XALAN_XSLTENGINEIMPL_HEADER_GUARD
41 #if defined(XALAN_AUTO_PTR_REQUIRES_DEFINITION)
78 XALAN_DECLARE_XERCES_CLASS(InputSource)
79 XALAN_DECLARE_XERCES_CLASS(DocumentHandler)
83 XALAN_CPP_NAMESPACE_BEGIN
133 if (theLHS == 0 && theRHS != 0)
137 else if (theRHS == 0)
143 return theLHS->
compare(*theRHS) < 0 ?
true :
false;
164 assert(theString != 0);
166 return *theString == m_string;
197 XMLParserLiaison& parserLiaison,
198 XPathEnvSupport& xpathEnvSupport,
199 DOMSupport& domSupport,
201 XPathFactory& xpathFactory);
209 return m_xpathConstructionContext.getMemoryManager();
231 XSLTResultTarget& outputTarget,
232 StylesheetConstructionContext& constructionContext,
238 XSLTResultTarget& outputTarget,
241 virtual StylesheetRoot*
244 StylesheetConstructionContext& constructionContext);
246 virtual StylesheetRoot*
249 StylesheetConstructionContext& constructionContext);
257 virtual XMLParserLiaison&
258 getXMLParserLiaison()
const;
274 getFormatterListener()
const;
282 getTraceListeners()
const;
291 fireGenerateEvent(
const GenerateEvent& ge);
300 getTraceSelects()
const;
303 setTraceSelects(
bool b);
310 const XPath* xpath)
const;
313 setQuietConflictWarnings(
bool b);
316 setDiagnosticsOutput(PrintWriter* pw);
354 DocumentHandlerType* docHandler,
370 const InputSourceType& inputSource,
371 DocumentHandlerType* docHandler,
387 getStylesheetFromPIURL(
392 StylesheetConstructionContext& constructionContext);
407 addResultNamespaceDecl(
411 addResultNamespaceDecl(
413 namespaceVal.
c_str(),
425 addResultNamespaceDecl(
427 const XalanDOMChar* namespaceVal,
430 m_resultNamespacesStack.addDeclaration(
451 bool fromCopy =
false,
476 const XalanDOMChar* value,
477 bool fromCopy =
false,
504 const XalanDOMChar* value,
506 bool fromCopy =
false,
521 const XalanDOMChar* value,
522 bool fromCopy =
false,
525 assert(m_outputContextStack.empty() ==
false);
528 getPendingAttributesImpl(),
548 bool fromCopy =
false,
551 assert(m_outputContextStack.empty() ==
false);
554 getPendingAttributesImpl(),
567 reportDuplicateNamespaceNodeError(
582 const XalanDOMChar* name,
586 endElement(
const XalanDOMChar* name);
590 const XalanDOMChar* ch,
595 const XalanDOMChar* ch,
599 processingInstruction(
600 const XalanDOMChar* target,
601 const XalanDOMChar* data);
615 const XalanDOMChar* ch,
642 startElement(
const XalanDOMChar* name);
655 const XalanDOMChar* ch,
681 comment(
const XalanDOMChar* data);
690 entityReference(
const XalanDOMChar* data);
701 const XalanDOMChar* ch,
715 bool cloneTextNodesOnly,
733 bool shouldCloneAttributes,
734 bool cloneTextNodesOnly,
746 const XObject& value,
747 bool outputTextNodesOnly,
759 outputResultTreeFragment(
760 const XObject& theTree,
761 bool outputTextNodesOnly,
764 outputResultTreeFragment(theTree.
rtree(), outputTextNodesOnly, locator);
776 outputResultTreeFragment(
778 bool outputTextNodesOnly,
786 virtual const StylesheetRoot*
787 getStylesheetRoot()
const;
795 setStylesheetRoot(
const StylesheetRoot* theStylesheet);
814 return s_XSLNameSpaceURL;
823 getXalanXSLNameSpaceURL()
825 return s_XalanNamespaceURL;
834 getQuietConflictWarnings()
const
836 return m_quietConflictWarnings;
894 getResultPrefixForNamespace(
const XalanDOMString& theNamespace)
const;
931 const PrefixResolver& resolver);
940 returnXPath(
const XPath* xpath);
948 copyNamespaceAttributes(
const XalanNode& src);
975 const PrefixResolver& prefixResolver,
1002 copyAttributeToTarget(
1015 return m_xpathFactory;
1026 return *m_xpathProcessor.get();
1042 getXPathEnvSupport()
1044 return m_xpathEnvSupport;
1058 m_problemListener = l;
1070 getProblemListener()
const
1072 return m_problemListener;
1083 m_outputContextStack.pushContext(theListener);
1092 m_outputContextStack.popContext();
1100 getHasPendingStartDocument()
const
1102 return getHasPendingStartDocumentImpl();
1110 setHasPendingStartDocument(
bool b)
1112 setHasPendingStartDocumentImpl(b);
1120 getMustFlushPendingStartDocument()
const
1122 return getMustFlushPendingStartDocumentImpl();
1130 setMustFlushPendingStartDocument(
bool b)
1132 setMustFlushPendingStartDocumentImpl(b);
1141 getPendingAttributes()
const
1143 return getPendingAttributesImpl();
1154 getPendingAttributesImpl() = pendingAttributes;
1165 replacePendingAttribute(
1166 const XalanDOMChar* theName,
1167 const XalanDOMChar* theNewType,
1168 const XalanDOMChar* theNewValue)
1172 getPendingAttributesImpl().addAttribute(theName, theNewType, theNewValue);
1176 isElementPending()
const
1178 return length(getPendingElementNameImpl()) != 0 ?
true :
false;
1187 getPendingElementName()
const
1189 return getPendingElementNameImpl();
1200 setPendingElementNameImpl(elementName);
1204 setPendingElementName(
const XalanDOMChar* elementName)
1206 setPendingElementNameImpl(elementName);
1215 getLocatorFromStack()
const
1217 return m_stylesheetLocatorStack.empty() ==
true ? 0 : m_stylesheetLocatorStack.back();
1228 m_stylesheetLocatorStack.push_back(locator);
1237 if (m_stylesheetLocatorStack.empty() ==
false)
1239 m_stylesheetLocatorStack.pop_back();
1251 getPendingAttributesImpl()
const
1253 return m_outputContextStack.getPendingAttributes();
1262 getPendingAttributesImpl()
1264 return m_outputContextStack.getPendingAttributes();
1275 getPendingAttributesImpl() = pendingAttributes;
1284 getPendingElementNameImpl()
const
1286 return m_outputContextStack.getPendingElementName();
1295 getPendingElementNameImpl()
1297 return m_outputContextStack.getPendingElementName();
1308 m_outputContextStack.getPendingElementName() = elementName;
1317 setPendingElementNameImpl(
const XalanDOMChar* elementName)
1319 assert(elementName != 0);
1321 m_outputContextStack.getPendingElementName() = elementName;
1329 getHasPendingStartDocumentImpl()
const
1331 return m_outputContextStack.getHasPendingStartDocument();
1339 setHasPendingStartDocumentImpl(
bool b)
1341 m_outputContextStack.getHasPendingStartDocument() = b;
1349 getMustFlushPendingStartDocumentImpl()
const
1351 return m_outputContextStack.getMustFlushPendingStartDocument();
1359 setMustFlushPendingStartDocumentImpl(
bool b)
1361 m_outputContextStack.getMustFlushPendingStartDocument() = b;
1365 getFormatterListenerImpl()
const
1367 return m_outputContextStack.getFormatterListener();
1373 m_outputContextStack.getFormatterListener() = flistener;
1395 copyAttributesToAttList(
1423 warnCopyTextNodesOnly(
1435 const XalanText& node,
1436 bool overrideStrip);
1443 pendingAttributesHasDefaultNS()
const;
1451 bool fOnlyIfPrefixNotPresent);
1457 bool fOnlyIfPrefixNotPresent =
false);
1463 LocatorStack m_stylesheetLocatorStack;
1478 const StylesheetRoot* m_stylesheetRoot;
1498 bool m_traceSelects;
1504 bool m_quietConflictWarnings;
1509 PrintWriter* m_diagnosticsPrintWriter;
1515 TraceListenerVectorType m_traceListeners;
1538 unsigned long m_uniqueNSValue;
1540 ParamVectorType m_topLevelParams;
1548 clearTopLevelParams()
1550 m_topLevelParams.
clear();
1556 generateCDATASection()
const
1558 if (m_hasCDATASectionElements ==
false)
1564 assert(m_cdataStack.
empty() ==
false);
1566 return m_cdataStack.
back();
1573 setMustFlushPendingStartDocument(
true);
1589 fireCharacterGenerateEvent(
1594 fireCharacterGenerateEvent(
1599 fireCharacterGenerateEvent(
1604 fireCharacterGenerateEvent(
1605 const XalanDOMChar* ch,
1611 checkDefaultNamespace(
1618 XMLParserLiaison& m_parserLiaison;
1620 XPathEnvSupport& m_xpathEnvSupport;
1622 DOMSupport& m_domSupport;
1646 XalanDOMStringPointerVectorType m_attributeNamesVisited;
1648 bool m_hasCDATASectionElements;
1656 uninstallFunctions();
1682 XALAN_CPP_NAMESPACE_END
1686 #endif // XALAN_XSLTENGINEIMPL_HEADER_GUARD