Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / XmlUtils / System / Xml / Xsl / XsltOld / TemplateLookupAction.cs / 1 / 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
- ValueQuery.cs
- ActivationServices.cs
- FlowDecisionLabelFeature.cs
- TdsRecordBufferSetter.cs
- HeaderUtility.cs
- BamlTreeUpdater.cs
- MatrixIndependentAnimationStorage.cs
- FilePrompt.cs
- XmlSchemaObjectTable.cs
- ToolStripMenuItem.cs
- StorageEntitySetMapping.cs
- DateTimeOffsetAdapter.cs
- Base64Encoder.cs
- Page.cs
- AbstractExpressions.cs
- CompoundFileDeflateTransform.cs
- FactoryGenerator.cs
- TypeFieldSchema.cs
- RegexCharClass.cs
- SafeUserTokenHandle.cs
- ConstrainedDataObject.cs
- DataMember.cs
- TableParagraph.cs
- ListManagerBindingsCollection.cs
- ServiceOperation.cs
- SurrogateSelector.cs
- RectConverter.cs
- RegexWorker.cs
- EmptyStringExpandableObjectConverter.cs
- MediaTimeline.cs
- HwndHostAutomationPeer.cs
- JournalNavigationScope.cs
- LoginView.cs
- MutexSecurity.cs
- ResourcePermissionBase.cs
- WindowsPrincipal.cs
- AnimationClockResource.cs
- BulletedListEventArgs.cs
- TreeView.cs
- SystemIcmpV4Statistics.cs
- IERequestCache.cs
- SecurityStandardsManager.cs
- Group.cs
- UTF8Encoding.cs
- SignedXml.cs
- _NestedSingleAsyncResult.cs
- ScaleTransform.cs
- DataGridAutoFormatDialog.cs
- SelectionEditingBehavior.cs
- BrushMappingModeValidation.cs
- LicenseContext.cs
- FileDataSourceCache.cs
- ReachPageContentSerializerAsync.cs
- OpenTypeLayout.cs
- DataTableMapping.cs
- MenuStrip.cs
- DbUpdateCommandTree.cs
- DataBoundLiteralControl.cs
- ControlAdapter.cs
- TextTrailingWordEllipsis.cs
- ReaderOutput.cs
- HtmlToClrEventProxy.cs
- BooleanFunctions.cs
- StatusBar.cs
- SecurityException.cs
- DoubleLink.cs
- DesignerForm.cs
- PrtCap_Public_Simple.cs
- TypedDataSetSchemaImporterExtensionFx35.cs
- SpecialNameAttribute.cs
- StrongNameKeyPair.cs
- SmtpCommands.cs
- HttpHandlerAction.cs
- DiscardableAttribute.cs
- BrowserCapabilitiesCodeGenerator.cs
- TableHeaderCell.cs
- SHA1CryptoServiceProvider.cs
- Deserializer.cs
- BamlLocalizationDictionary.cs
- StateMachineWorkflow.cs
- DataGridTextColumn.cs
- TemplateBamlTreeBuilder.cs
- NavigatingCancelEventArgs.cs
- SmiEventSink.cs
- RichTextBox.cs
- DesignerMetadata.cs
- MouseGestureValueSerializer.cs
- compensatingcollection.cs
- ThemeDirectoryCompiler.cs
- ObjectViewFactory.cs
- InkCanvas.cs
- DocumentXmlWriter.cs
- DataGridViewCellStyleEditor.cs
- LayoutSettings.cs
- LongTypeConverter.cs
- InputLanguageProfileNotifySink.cs
- StylusPointProperties.cs
- MediaEntryAttribute.cs
- UniqueEventHelper.cs
- SynchronizingStream.cs