Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / ndp / fx / src / DataEntity / System / Data / Map / ViewGeneration / Structures / IfJoinedCondition.cs / 2 / IfJoinedCondition.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Text; using System.Collections.Generic; using System.Diagnostics; namespace System.Data.Mapping.ViewGeneration.Structures { // A class that denotes the boolean expression: "IfJoined(var)", i.e. in // a jointree, if a tuple is received from the right side of an LOJ, this // variable is true on the right child of the LOJ node -- useful for compositions internal class IfJoinedCondition : TrueFalseLiteral { // effects: Given a join tree slot "node", returns a boolean // expression of the form "IfJoined(node) in {true}" internal IfJoinedCondition(JoinTreeNode node) { m_var = new JoinTreeSlot(node); } #region Fields private JoinTreeSlot m_var; #endregion #region Properties // effects: Returns the variable in this internal JoinTreeSlot Var { get { return m_var; } } #endregion #region String methods internal override void ToCompactString(StringBuilder builder) { builder.Append("IfJoined("); Var.ToCompactString(builder); builder.Append(")"); } #endregion #region BoolLiteral Members // effects: See BoolExpression.RemapBool internal override BoolLiteral RemapBool(Dictionaryremap) { JoinTreeSlot newVar = (JoinTreeSlot)m_var.RemapSlot(remap); return new IfJoinedCondition(newVar.JoinTreeNode); } internal override StringBuilder AsCql(StringBuilder builder, string blockAlias, bool canSkipIsNotNull) { // CHANGE_[....]_FEATURE_COMPOSITION Debug.Fail("Support for compositions missing"); return builder; } internal override StringBuilder AsUserString(StringBuilder builder, string blockAlias, bool canSkipIsNotNull) { return AsCql(builder, blockAlias, canSkipIsNotNull); } internal override StringBuilder AsNegatedUserString(StringBuilder builder, string blockAlias, bool canSkipIsNotNull) { builder.Append("NOT("); builder = AsUserString(builder, blockAlias, canSkipIsNotNull); builder.Append(")"); return builder; } // effects: See BoolExpression.GetRequiredSlots internal override void GetRequiredSlots(MemberPathMapBase projectedSlotMap, bool[] requiredSlots) { // Simply get the slot for the variable var in "var in values" MemberPath member = Var.MemberPath; int slotNum = projectedSlotMap.IndexOf(member); requiredSlots[slotNum] = true; } #endregion protected override bool IsEqualTo(BoolLiteral right) { IfJoinedCondition rightCond = right as IfJoinedCondition; if (rightCond == null) { return false; } if (object.ReferenceEquals(this, rightCond)) { return true; } return JoinTreeSlot.EqualityComparer.Equals(m_var, rightCond.m_var); } protected override int GetHash() { int result = JoinTreeSlot.EqualityComparer.GetHashCode(m_var); return result; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Text; using System.Collections.Generic; using System.Diagnostics; namespace System.Data.Mapping.ViewGeneration.Structures { // A class that denotes the boolean expression: "IfJoined(var)", i.e. in // a jointree, if a tuple is received from the right side of an LOJ, this // variable is true on the right child of the LOJ node -- useful for compositions internal class IfJoinedCondition : TrueFalseLiteral { // effects: Given a join tree slot "node", returns a boolean // expression of the form "IfJoined(node) in {true}" internal IfJoinedCondition(JoinTreeNode node) { m_var = new JoinTreeSlot(node); } #region Fields private JoinTreeSlot m_var; #endregion #region Properties // effects: Returns the variable in this internal JoinTreeSlot Var { get { return m_var; } } #endregion #region String methods internal override void ToCompactString(StringBuilder builder) { builder.Append("IfJoined("); Var.ToCompactString(builder); builder.Append(")"); } #endregion #region BoolLiteral Members // effects: See BoolExpression.RemapBool internal override BoolLiteral RemapBool(Dictionaryremap) { JoinTreeSlot newVar = (JoinTreeSlot)m_var.RemapSlot(remap); return new IfJoinedCondition(newVar.JoinTreeNode); } internal override StringBuilder AsCql(StringBuilder builder, string blockAlias, bool canSkipIsNotNull) { // CHANGE_[....]_FEATURE_COMPOSITION Debug.Fail("Support for compositions missing"); return builder; } internal override StringBuilder AsUserString(StringBuilder builder, string blockAlias, bool canSkipIsNotNull) { return AsCql(builder, blockAlias, canSkipIsNotNull); } internal override StringBuilder AsNegatedUserString(StringBuilder builder, string blockAlias, bool canSkipIsNotNull) { builder.Append("NOT("); builder = AsUserString(builder, blockAlias, canSkipIsNotNull); builder.Append(")"); return builder; } // effects: See BoolExpression.GetRequiredSlots internal override void GetRequiredSlots(MemberPathMapBase projectedSlotMap, bool[] requiredSlots) { // Simply get the slot for the variable var in "var in values" MemberPath member = Var.MemberPath; int slotNum = projectedSlotMap.IndexOf(member); requiredSlots[slotNum] = true; } #endregion protected override bool IsEqualTo(BoolLiteral right) { IfJoinedCondition rightCond = right as IfJoinedCondition; if (rightCond == null) { return false; } if (object.ReferenceEquals(this, rightCond)) { return true; } return JoinTreeSlot.EqualityComparer.Equals(m_var, rightCond.m_var); } protected override int GetHash() { int result = JoinTreeSlot.EqualityComparer.GetHashCode(m_var); return result; } } } // 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
- SystemIPInterfaceProperties.cs
- DataGridTableCollection.cs
- HttpListenerElement.cs
- validation.cs
- DbConnectionPool.cs
- InvalidOleVariantTypeException.cs
- CallSite.cs
- SpeechAudioFormatInfo.cs
- TypeForwardedToAttribute.cs
- SchemaTypeEmitter.cs
- ButtonColumn.cs
- DataGridViewAdvancedBorderStyle.cs
- Quaternion.cs
- HealthMonitoringSection.cs
- UIPermission.cs
- LazyTextWriterCreator.cs
- ProcessModuleCollection.cs
- ChtmlTextWriter.cs
- ManagementNamedValueCollection.cs
- Int64AnimationBase.cs
- PolicyStatement.cs
- DataBoundLiteralControl.cs
- ConfigXmlWhitespace.cs
- DependencyObjectProvider.cs
- ActiveXSite.cs
- ActivityExecutorSurrogate.cs
- __Filters.cs
- DrawingGroupDrawingContext.cs
- FtpWebRequest.cs
- securitycriticaldataformultiplegetandset.cs
- XamlSerializer.cs
- ItemList.cs
- ContentAlignmentEditor.cs
- ImageMap.cs
- X509Utils.cs
- PageContent.cs
- Storyboard.cs
- StateWorkerRequest.cs
- ZipIOCentralDirectoryFileHeader.cs
- SafeRightsManagementPubHandle.cs
- JsonByteArrayDataContract.cs
- VectorAnimation.cs
- _CommandStream.cs
- WindowsSysHeader.cs
- StylusCaptureWithinProperty.cs
- ItemsPresenter.cs
- XmlSerializationGeneratedCode.cs
- ErrorTolerantObjectWriter.cs
- FormViewPagerRow.cs
- SafeBitVector32.cs
- GrammarBuilderBase.cs
- Icon.cs
- SiteMapNode.cs
- DataBindingHandlerAttribute.cs
- FormClosingEvent.cs
- ListViewItemSelectionChangedEvent.cs
- LightweightCodeGenerator.cs
- ExtensionWindowResizeGrip.cs
- TableItemPattern.cs
- TransformGroup.cs
- Unit.cs
- ButtonAutomationPeer.cs
- WindowsTooltip.cs
- ScalarOps.cs
- AdvancedBindingPropertyDescriptor.cs
- AccessDataSource.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- XmlSerializerOperationFormatter.cs
- ComponentDispatcherThread.cs
- TimeEnumHelper.cs
- DBSqlParserColumnCollection.cs
- XPathNodeInfoAtom.cs
- VerticalAlignConverter.cs
- ButtonBase.cs
- HtmlHistory.cs
- SourceFileBuildProvider.cs
- Propagator.JoinPropagator.cs
- DetailsViewDeletedEventArgs.cs
- SqlCommandBuilder.cs
- Compiler.cs
- SapiRecoContext.cs
- EventHandlersStore.cs
- RotateTransform3D.cs
- SingleConverter.cs
- Binding.cs
- AdornerDecorator.cs
- WeakReference.cs
- DbProviderManifest.cs
- printdlgexmarshaler.cs
- DispatcherEventArgs.cs
- WindowsListViewScroll.cs
- DataTableClearEvent.cs
- LinkUtilities.cs
- OrCondition.cs
- ConnectionPoint.cs
- SeekStoryboard.cs
- CustomWebEventKey.cs
- PointHitTestParameters.cs
- ValidationResult.cs
- SecurityStateEncoder.cs