Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- Typography.cs
- CDSCollectionETWBCLProvider.cs
- EventBindingService.cs
- ConsoleKeyInfo.cs
- AmbientLight.cs
- FunctionGenerator.cs
- HScrollProperties.cs
- ParameterCollection.cs
- EditorPart.cs
- TrackingMemoryStream.cs
- GeneralTransform3D.cs
- WindowsTitleBar.cs
- PriorityQueue.cs
- TrackingServices.cs
- URI.cs
- sqlpipe.cs
- FileLogRecord.cs
- DataGridCommandEventArgs.cs
- TextRangeEdit.cs
- GorillaCodec.cs
- AssemblyFilter.cs
- ExpressionStringBuilder.cs
- IERequestCache.cs
- UniqueEventHelper.cs
- RIPEMD160Managed.cs
- ExclusiveCanonicalizationTransform.cs
- CellIdBoolean.cs
- FormViewUpdateEventArgs.cs
- codemethodreferenceexpression.cs
- ActivityInstance.cs
- PreservationFileReader.cs
- CharStorage.cs
- FixedPosition.cs
- Clause.cs
- FlowDocumentPaginator.cs
- ExtractCollection.cs
- HostProtectionException.cs
- DataGridViewRowEventArgs.cs
- QueryCacheManager.cs
- Effect.cs
- PrintPreviewDialog.cs
- SolidBrush.cs
- VersionUtil.cs
- TreeNodeStyleCollectionEditor.cs
- DataSourceControl.cs
- SecurityContextKeyIdentifierClause.cs
- XmlTypeAttribute.cs
- TransformerTypeCollection.cs
- ResourceDefaultValueAttribute.cs
- PackageRelationshipSelector.cs
- MulticastNotSupportedException.cs
- Point.cs
- IdentitySection.cs
- StorageMappingItemCollection.cs
- Model3D.cs
- PerformanceCounterPermissionEntryCollection.cs
- GeneratedView.cs
- OleDragDropHandler.cs
- StrokeNodeData.cs
- QueryStringHandler.cs
- ColorAnimation.cs
- DocumentXmlWriter.cs
- ExpressionContext.cs
- SoapAttributeOverrides.cs
- HitTestWithGeometryDrawingContextWalker.cs
- MaskedTextProvider.cs
- XmlBaseReader.cs
- ComMethodElement.cs
- AutoResetEvent.cs
- ModulesEntry.cs
- Peer.cs
- Accessors.cs
- HtmlTableRow.cs
- SiteMapDataSourceView.cs
- NativeObjectSecurity.cs
- ActivityValidator.cs
- TemplateAction.cs
- PathSegmentCollection.cs
- InternalConfirm.cs
- AnnotationResourceChangedEventArgs.cs
- ActiveXHelper.cs
- SingleTagSectionHandler.cs
- ManipulationCompletedEventArgs.cs
- BitmapFrame.cs
- ProfilePropertyMetadata.cs
- Types.cs
- VisualStateChangedEventArgs.cs
- WindowsStartMenu.cs
- Encoder.cs
- _ProxyChain.cs
- DataPointer.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- PlatformCulture.cs
- NavigatorOutput.cs
- GridViewCommandEventArgs.cs
- SiteMapNodeItem.cs
- LayoutEditorPart.cs
- CompletionCallbackWrapper.cs
- Avt.cs
- VisualState.cs