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
- HttpClientChannel.cs
- WindowsAuthenticationEventArgs.cs
- WhereQueryOperator.cs
- HideDisabledControlAdapter.cs
- CodeDOMUtility.cs
- ErrorInfoXmlDocument.cs
- FunctionGenerator.cs
- TimeSpanSecondsConverter.cs
- XPathAxisIterator.cs
- XmlDataDocument.cs
- ColumnCollection.cs
- DynamicRenderer.cs
- RadialGradientBrush.cs
- OpenTypeMethods.cs
- WebHeaderCollection.cs
- EntityModelBuildProvider.cs
- PageHandlerFactory.cs
- GridViewPageEventArgs.cs
- TypeNameHelper.cs
- PrimitiveType.cs
- MethodToken.cs
- safelinkcollection.cs
- DelegatingMessage.cs
- TextTreeUndo.cs
- AuthenticationServiceManager.cs
- DeploymentExceptionMapper.cs
- AsyncOperation.cs
- JsonReaderDelegator.cs
- ScriptComponentDescriptor.cs
- UIElementIsland.cs
- JournalEntry.cs
- State.cs
- RightsManagementInformation.cs
- PanelDesigner.cs
- PreservationFileWriter.cs
- ComplexBindingPropertiesAttribute.cs
- XmlSerializationGeneratedCode.cs
- TaskScheduler.cs
- ShapeTypeface.cs
- StateDesigner.LayoutSelectionGlyph.cs
- Opcode.cs
- SymbolEqualComparer.cs
- ContractAdapter.cs
- GlyphsSerializer.cs
- Root.cs
- SkewTransform.cs
- UIElementIsland.cs
- WindowsEditBoxRange.cs
- WebPartConnectionsCancelVerb.cs
- GacUtil.cs
- BitStack.cs
- XmlAttributeAttribute.cs
- Dump.cs
- DefaultBinder.cs
- InstallerTypeAttribute.cs
- RuleSettingsCollection.cs
- ToolStripMenuItem.cs
- Win32Exception.cs
- RNGCryptoServiceProvider.cs
- WindowsFormsHostPropertyMap.cs
- TokenizerHelper.cs
- CapabilitiesSection.cs
- TableLayoutSettingsTypeConverter.cs
- StdValidatorsAndConverters.cs
- ServiceInstallComponent.cs
- ClientSettingsStore.cs
- TextRangeEditTables.cs
- COM2IDispatchConverter.cs
- PointKeyFrameCollection.cs
- SafeEventLogReadHandle.cs
- ControlCachePolicy.cs
- CodeLabeledStatement.cs
- BuildProviderCollection.cs
- AnimationTimeline.cs
- SqlBooleanizer.cs
- LocatorPart.cs
- HttpContextWrapper.cs
- PenThreadWorker.cs
- HideDisabledControlAdapter.cs
- Root.cs
- EnumType.cs
- sapiproxy.cs
- ContextMenuStripGroup.cs
- TypeListConverter.cs
- HebrewNumber.cs
- SignedInfo.cs
- UrlAuthorizationModule.cs
- DataRelationPropertyDescriptor.cs
- EmptyWithCancelationCheckWorkItem.cs
- Trigger.cs
- RouteUrlExpressionBuilder.cs
- NamespaceInfo.cs
- TextChangedEventArgs.cs
- FileDialog.cs
- FixedTextBuilder.cs
- RecognizeCompletedEventArgs.cs
- UnsafeNativeMethods.cs
- ToolStripGripRenderEventArgs.cs
- HttpPostedFileBase.cs
- NamespaceInfo.cs