Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / XmlUtils / System / Xml / Xsl / XsltOld / IfAction.cs / 1 / IfAction.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 IfAction : ContainerAction { internal enum ConditionType { ConditionIf, ConditionWhen, ConditionOtherwise } private ConditionType type; private int testKey = Compiler.InvalidQueryKey; internal IfAction(ConditionType type) { this.type = type; } internal override void Compile(Compiler compiler) { CompileAttributes(compiler); if (this.type != ConditionType.ConditionOtherwise) { CheckRequiredAttribute(compiler, this.testKey != Compiler.InvalidQueryKey, Keywords.s_Test); } if (compiler.Recurse()) { CompileTemplate(compiler); compiler.ToParent(); } } internal override bool CompileAttribute(Compiler compiler) { string name = compiler.Input.LocalName; string value = compiler.Input.Value; if (Keywords.Equals(name, compiler.Atoms.Test)) { if (this.type == ConditionType.ConditionOtherwise) { return false; } this.testKey = compiler.AddBooleanQuery(value); } else { return false; } return true; } internal override void Execute(Processor processor, ActionFrame frame) { Debug.Assert(processor != null && frame != null); switch (frame.State) { case Initialized: if (this.type == ConditionType.ConditionIf || this.type == ConditionType.ConditionWhen) { Debug.Assert(this.testKey != Compiler.InvalidQueryKey); bool value = processor.EvaluateBoolean(frame, this.testKey); if (value == false) { frame.Finished(); break; } } processor.PushActionFrame(frame); frame.State = ProcessingChildren; break; // Allow children to run case ProcessingChildren: if (this.type == ConditionType.ConditionWhen ||this.type == ConditionType.ConditionOtherwise) { Debug.Assert(frame.Container != null); frame.Exit(); } frame.Finished(); break; default: Debug.Fail("Invalid IfAction execution state"); break; } } } } // 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 IfAction : ContainerAction { internal enum ConditionType { ConditionIf, ConditionWhen, ConditionOtherwise } private ConditionType type; private int testKey = Compiler.InvalidQueryKey; internal IfAction(ConditionType type) { this.type = type; } internal override void Compile(Compiler compiler) { CompileAttributes(compiler); if (this.type != ConditionType.ConditionOtherwise) { CheckRequiredAttribute(compiler, this.testKey != Compiler.InvalidQueryKey, Keywords.s_Test); } if (compiler.Recurse()) { CompileTemplate(compiler); compiler.ToParent(); } } internal override bool CompileAttribute(Compiler compiler) { string name = compiler.Input.LocalName; string value = compiler.Input.Value; if (Keywords.Equals(name, compiler.Atoms.Test)) { if (this.type == ConditionType.ConditionOtherwise) { return false; } this.testKey = compiler.AddBooleanQuery(value); } else { return false; } return true; } internal override void Execute(Processor processor, ActionFrame frame) { Debug.Assert(processor != null && frame != null); switch (frame.State) { case Initialized: if (this.type == ConditionType.ConditionIf || this.type == ConditionType.ConditionWhen) { Debug.Assert(this.testKey != Compiler.InvalidQueryKey); bool value = processor.EvaluateBoolean(frame, this.testKey); if (value == false) { frame.Finished(); break; } } processor.PushActionFrame(frame); frame.State = ProcessingChildren; break; // Allow children to run case ProcessingChildren: if (this.type == ConditionType.ConditionWhen ||this.type == ConditionType.ConditionOtherwise) { Debug.Assert(frame.Container != null); frame.Exit(); } frame.Finished(); break; default: Debug.Fail("Invalid IfAction execution state"); break; } } } } // 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
- ConfigurationSection.cs
- EdmComplexTypeAttribute.cs
- DataColumnCollection.cs
- OutgoingWebRequestContext.cs
- PropertyPathConverter.cs
- SqlGenericUtil.cs
- basenumberconverter.cs
- PropertyValueUIItem.cs
- COAUTHINFO.cs
- HScrollProperties.cs
- SpellerStatusTable.cs
- RowUpdatingEventArgs.cs
- WindowsTab.cs
- DefaultAuthorizationContext.cs
- FormatControl.cs
- WCFBuildProvider.cs
- DbConnectionPoolGroupProviderInfo.cs
- ExpressionPrinter.cs
- figurelengthconverter.cs
- DataGridViewComboBoxEditingControl.cs
- FtpRequestCacheValidator.cs
- UpdatePanelTriggerCollection.cs
- QuotaExceededException.cs
- PropertyOverridesTypeEditor.cs
- PerformanceCounterLib.cs
- SQLBytes.cs
- XmlSchemaObjectTable.cs
- TripleDESCryptoServiceProvider.cs
- WebCategoryAttribute.cs
- JsonFormatMapping.cs
- BorderGapMaskConverter.cs
- GuidelineCollection.cs
- AppDomain.cs
- TextTreeTextNode.cs
- XhtmlBasicFormAdapter.cs
- StringReader.cs
- OutputCacheModule.cs
- SmiEventSink_DeferedProcessing.cs
- TitleStyle.cs
- SingleAnimationUsingKeyFrames.cs
- WaitForChangedResult.cs
- DefaultBindingPropertyAttribute.cs
- EntityTypeEmitter.cs
- NaturalLanguageHyphenator.cs
- GcSettings.cs
- ContextMenu.cs
- Utils.cs
- DataSetUtil.cs
- Profiler.cs
- DataFormats.cs
- StyleSelector.cs
- _SslSessionsCache.cs
- InputManager.cs
- ManifestResourceInfo.cs
- TextCompositionEventArgs.cs
- AutomationPatternInfo.cs
- XsltConvert.cs
- BlurBitmapEffect.cs
- invalidudtexception.cs
- URLBuilder.cs
- DataSourceGeneratorException.cs
- WebUtil.cs
- ToolStripPanelRow.cs
- DecoderFallback.cs
- Int32CollectionValueSerializer.cs
- ImageListUtils.cs
- PathGradientBrush.cs
- UIAgentCrashedException.cs
- XPathBinder.cs
- PathGradientBrush.cs
- KeyValueInternalCollection.cs
- CustomWebEventKey.cs
- XmlDataSource.cs
- DataRecordInternal.cs
- HWStack.cs
- Base64Stream.cs
- ImportFileRequest.cs
- EntityDataSourceView.cs
- SocketPermission.cs
- GlobalizationSection.cs
- AppSettingsReader.cs
- FileFormatException.cs
- TreeViewCancelEvent.cs
- BitmapEffectGroup.cs
- StylusDownEventArgs.cs
- GuidConverter.cs
- TreeViewImageKeyConverter.cs
- KeyFrames.cs
- OutputWindow.cs
- SchemaImporterExtensionsSection.cs
- DataSourceXmlSubItemAttribute.cs
- OleDbPropertySetGuid.cs
- StyleBamlTreeBuilder.cs
- SoundPlayer.cs
- SpellerHighlightLayer.cs
- Exceptions.cs
- ToolStripDropDownButton.cs
- WaitHandleCannotBeOpenedException.cs
- x509utils.cs
- LostFocusEventManager.cs