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
- DbConnectionPoolGroup.cs
- TreeViewAutomationPeer.cs
- HtmlCommandAdapter.cs
- PageAdapter.cs
- SID.cs
- PageSetupDialog.cs
- XmlSchemaAppInfo.cs
- BindingUtils.cs
- _SslStream.cs
- ArgIterator.cs
- ClientSession.cs
- PropertyMap.cs
- ValueTypeIndexerReference.cs
- Grid.cs
- StagingAreaInputItem.cs
- DefaultProxySection.cs
- XmlElement.cs
- WhitespaceRuleLookup.cs
- CodeSnippetStatement.cs
- WebPartConnectionsDisconnectVerb.cs
- ComPlusServiceLoader.cs
- ScrollProperties.cs
- ServiceElementCollection.cs
- DataTableExtensions.cs
- LabelLiteral.cs
- ScalarOps.cs
- WinFormsSecurity.cs
- ExpandCollapseProviderWrapper.cs
- CreateDataSourceDialog.cs
- XmlChildNodes.cs
- BuildManagerHost.cs
- HostingEnvironmentException.cs
- DoubleIndependentAnimationStorage.cs
- StringPropertyBuilder.cs
- Expressions.cs
- SettingsSection.cs
- ElapsedEventArgs.cs
- IgnoreFileBuildProvider.cs
- SettingsSection.cs
- Scalars.cs
- Drawing.cs
- RubberbandSelector.cs
- InvalidChannelBindingException.cs
- ViewgenGatekeeper.cs
- EmbeddedMailObject.cs
- SettingsPropertyCollection.cs
- Ipv6Element.cs
- FirewallWrapper.cs
- AuthenticationModuleElement.cs
- Environment.cs
- SqlStatistics.cs
- EventData.cs
- GACMembershipCondition.cs
- BookmarkCallbackWrapper.cs
- VisualStateManager.cs
- TdsRecordBufferSetter.cs
- FocusWithinProperty.cs
- PolicyValidator.cs
- StringComparer.cs
- DateTimeOffset.cs
- CollectionBuilder.cs
- RouteCollection.cs
- FunctionQuery.cs
- NameSpaceEvent.cs
- SecurityDescriptor.cs
- DrawingImage.cs
- FreezableDefaultValueFactory.cs
- WebPartDisplayModeCollection.cs
- GACIdentityPermission.cs
- InvalidOleVariantTypeException.cs
- HttpProfileBase.cs
- Page.cs
- EmptyEnumerator.cs
- WebPartConnectionsCancelEventArgs.cs
- MarkerProperties.cs
- BlobPersonalizationState.cs
- RegexRunnerFactory.cs
- OrderedDictionaryStateHelper.cs
- Font.cs
- VoiceChangeEventArgs.cs
- SocketException.cs
- TransformPattern.cs
- XPathException.cs
- HMACSHA384.cs
- GPPOINT.cs
- ErrorHandler.cs
- Substitution.cs
- CngKeyCreationParameters.cs
- dbenumerator.cs
- AssemblyInfo.cs
- SystemException.cs
- TextBoxDesigner.cs
- BindStream.cs
- Stylus.cs
- SemaphoreFullException.cs
- OrderByExpression.cs
- FunctionImportElement.cs
- ObjectHelper.cs
- IisHelper.cs
- WinEventHandler.cs