Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / XmlUtils / System / Xml / Xsl / XsltOld / TemplateLookupAction.cs / 1305376 / TemplateLookupAction.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
//-----------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
using Res = System.Xml.Utils.Res;
using System;
using System.Diagnostics;
using System.Xml;
using System.Xml.XPath;
internal class TemplateLookupAction : Action {
protected XmlQualifiedName mode;
protected Stylesheet importsOf;
internal void Initialize(XmlQualifiedName mode, Stylesheet importsOf) {
this.mode = mode;
this.importsOf = importsOf;
}
internal override void Execute(Processor processor, ActionFrame frame) {
Debug.Assert(processor != null && frame != null);
Debug.Assert(frame.State == Initialized);
Action action = null;
if (this.mode != null) {
action = importsOf == null
? processor.Stylesheet.FindTemplate(processor, frame.Node, this.mode)
: importsOf.FindTemplateImports(processor, frame.Node, this.mode);
}
else {
action = importsOf == null
? processor.Stylesheet.FindTemplate(processor, frame.Node)
: importsOf.FindTemplateImports(processor, frame.Node);
}
// Built-int template rules
if (action == null) {
action = BuiltInTemplate(frame.Node);
}
// Jump
if (action != null) {
frame.SetAction(action);
}
else {
frame.Finished();
}
}
internal Action BuiltInTemplate(XPathNavigator node) {
Debug.Assert(node != null);
Action action = null;
switch (node.NodeType) {
//
//
//
case XPathNodeType.Element:
case XPathNodeType.Root:
action = ApplyTemplatesAction.BuiltInRule(this.mode);
break;
//
//
//
case XPathNodeType.Attribute:
case XPathNodeType.Whitespace:
case XPathNodeType.SignificantWhitespace:
case XPathNodeType.Text:
action = ValueOfAction.BuiltInRule();
break;
//
case XPathNodeType.ProcessingInstruction:
case XPathNodeType.Comment:
// Empty action;
break;
case XPathNodeType.All:
// Ignore the rest
break;
}
return action;
}
}
internal class TemplateLookupActionDbg : TemplateLookupAction {
internal override void Execute(Processor processor, ActionFrame frame) {
Debug.Assert(processor != null && frame != null);
Debug.Assert(frame.State == Initialized);
Debug.Assert(processor.Debugger != null);
Action action = null;
if (this.mode == Compiler.BuiltInMode) {
// mode="*" -- use one from debuggerStack
this.mode = processor.GetPrevioseMode();
Debug.Assert(this.mode != Compiler.BuiltInMode);
}
processor.SetCurrentMode(this.mode);
if (this.mode != null) {
action = importsOf == null
? processor.Stylesheet.FindTemplate(processor, frame.Node, this.mode)
: importsOf.FindTemplateImports(processor, frame.Node, this.mode);
}
else {
action = importsOf == null
? processor.Stylesheet.FindTemplate(processor, frame.Node)
: importsOf.FindTemplateImports(processor, frame.Node);
}
// Built-int template rules
if (action == null && processor.RootAction.builtInSheet != null) {
action = processor.RootAction.builtInSheet.FindTemplate(processor, frame.Node, Compiler.BuiltInMode);
}
if (action == null) {
action = BuiltInTemplate(frame.Node);
}
// Jump
if (action != null) {
frame.SetAction(action);
}
else {
frame.Finished();
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
//-----------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
using Res = System.Xml.Utils.Res;
using System;
using System.Diagnostics;
using System.Xml;
using System.Xml.XPath;
internal class TemplateLookupAction : Action {
protected XmlQualifiedName mode;
protected Stylesheet importsOf;
internal void Initialize(XmlQualifiedName mode, Stylesheet importsOf) {
this.mode = mode;
this.importsOf = importsOf;
}
internal override void Execute(Processor processor, ActionFrame frame) {
Debug.Assert(processor != null && frame != null);
Debug.Assert(frame.State == Initialized);
Action action = null;
if (this.mode != null) {
action = importsOf == null
? processor.Stylesheet.FindTemplate(processor, frame.Node, this.mode)
: importsOf.FindTemplateImports(processor, frame.Node, this.mode);
}
else {
action = importsOf == null
? processor.Stylesheet.FindTemplate(processor, frame.Node)
: importsOf.FindTemplateImports(processor, frame.Node);
}
// Built-int template rules
if (action == null) {
action = BuiltInTemplate(frame.Node);
}
// Jump
if (action != null) {
frame.SetAction(action);
}
else {
frame.Finished();
}
}
internal Action BuiltInTemplate(XPathNavigator node) {
Debug.Assert(node != null);
Action action = null;
switch (node.NodeType) {
//
//
//
case XPathNodeType.Element:
case XPathNodeType.Root:
action = ApplyTemplatesAction.BuiltInRule(this.mode);
break;
//
//
//
case XPathNodeType.Attribute:
case XPathNodeType.Whitespace:
case XPathNodeType.SignificantWhitespace:
case XPathNodeType.Text:
action = ValueOfAction.BuiltInRule();
break;
//
case XPathNodeType.ProcessingInstruction:
case XPathNodeType.Comment:
// Empty action;
break;
case XPathNodeType.All:
// Ignore the rest
break;
}
return action;
}
}
internal class TemplateLookupActionDbg : TemplateLookupAction {
internal override void Execute(Processor processor, ActionFrame frame) {
Debug.Assert(processor != null && frame != null);
Debug.Assert(frame.State == Initialized);
Debug.Assert(processor.Debugger != null);
Action action = null;
if (this.mode == Compiler.BuiltInMode) {
// mode="*" -- use one from debuggerStack
this.mode = processor.GetPrevioseMode();
Debug.Assert(this.mode != Compiler.BuiltInMode);
}
processor.SetCurrentMode(this.mode);
if (this.mode != null) {
action = importsOf == null
? processor.Stylesheet.FindTemplate(processor, frame.Node, this.mode)
: importsOf.FindTemplateImports(processor, frame.Node, this.mode);
}
else {
action = importsOf == null
? processor.Stylesheet.FindTemplate(processor, frame.Node)
: importsOf.FindTemplateImports(processor, frame.Node);
}
// Built-int template rules
if (action == null && processor.RootAction.builtInSheet != null) {
action = processor.RootAction.builtInSheet.FindTemplate(processor, frame.Node, Compiler.BuiltInMode);
}
if (action == null) {
action = BuiltInTemplate(frame.Node);
}
// Jump
if (action != null) {
frame.SetAction(action);
}
else {
frame.Finished();
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataTableReaderListener.cs
- CheckBoxField.cs
- SqlFacetAttribute.cs
- LinkUtilities.cs
- SqlSelectStatement.cs
- SplitterPanelDesigner.cs
- ConnectionsZone.cs
- Win32Native.cs
- SiteMembershipCondition.cs
- _HeaderInfo.cs
- HighlightComponent.cs
- ExpressionsCollectionEditor.cs
- ApplicationFileCodeDomTreeGenerator.cs
- XamlSerializerUtil.cs
- ProfileBuildProvider.cs
- CodeCommentStatement.cs
- _ConnectStream.cs
- XmlDocumentSchema.cs
- DateTimeUtil.cs
- VerticalAlignConverter.cs
- ListBox.cs
- ImagingCache.cs
- RankException.cs
- XmlAttributeProperties.cs
- EntityWrapper.cs
- XmlNodeComparer.cs
- XsdBuilder.cs
- Sequence.cs
- SettingsBase.cs
- AutoResetEvent.cs
- processwaithandle.cs
- VirtualPath.cs
- TextViewSelectionProcessor.cs
- LineSegment.cs
- ActivityXRefPropertyEditor.cs
- ItemCollection.cs
- PropertyIdentifier.cs
- PageSetupDialog.cs
- HtmlButton.cs
- TextEffectResolver.cs
- KeyedQueue.cs
- TimeSpanValidator.cs
- MemberDescriptor.cs
- BaseResourcesBuildProvider.cs
- HebrewNumber.cs
- LogWriteRestartAreaState.cs
- PointIndependentAnimationStorage.cs
- WebPartUtil.cs
- BitVec.cs
- PointIndependentAnimationStorage.cs
- SpanIndex.cs
- EditingCoordinator.cs
- XsltContext.cs
- DrawingImage.cs
- Matrix.cs
- TemplateColumn.cs
- CompilationUnit.cs
- TreeView.cs
- SqlCommandAsyncResult.cs
- NullEntityWrapper.cs
- HtmlObjectListAdapter.cs
- HierarchicalDataSourceDesigner.cs
- formatstringdialog.cs
- QueryCacheEntry.cs
- WebColorConverter.cs
- ClientBuildManager.cs
- PeerCollaborationPermission.cs
- RectangleHotSpot.cs
- RectangleHotSpot.cs
- TextEffectResolver.cs
- StrokeCollectionDefaultValueFactory.cs
- TreeNodeEventArgs.cs
- CommandValueSerializer.cs
- NameObjectCollectionBase.cs
- BrowserCapabilitiesFactoryBase.cs
- DefaultEvaluationContext.cs
- ControlBuilder.cs
- CallbackValidator.cs
- ImageClickEventArgs.cs
- DBNull.cs
- MetabaseSettings.cs
- XmlSerializationReader.cs
- MetafileHeaderWmf.cs
- X509Certificate2.cs
- Style.cs
- CannotUnloadAppDomainException.cs
- StaticFileHandler.cs
- SendAgentStatusRequest.cs
- XhtmlBasicSelectionListAdapter.cs
- DependencyObject.cs
- SourceFileBuildProvider.cs
- GcSettings.cs
- LogExtentCollection.cs
- CodeObject.cs
- UIntPtr.cs
- AssemblyAttributes.cs
- SystemIPInterfaceProperties.cs
- safesecurityhelperavalon.cs
- SiteMapSection.cs
- ConsoleTraceListener.cs