Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataEntity / System / Data / Map / ViewGeneration / Structures / IfJoinedCondition.cs / 1 / 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
- ReadOnlyMetadataCollection.cs
- HealthMonitoringSectionHelper.cs
- DataSourceHelper.cs
- InputProviderSite.cs
- DBConnectionString.cs
- Codec.cs
- MimeObjectFactory.cs
- BindingListCollectionView.cs
- Parser.cs
- GlyphElement.cs
- DependencyPropertyConverter.cs
- CachedPathData.cs
- MsmqInputChannelBase.cs
- StrokeNodeEnumerator.cs
- RelationshipEndCollection.cs
- WSSecurityOneDotZeroReceiveSecurityHeader.cs
- ImageMapEventArgs.cs
- RadioButtonRenderer.cs
- ReadingWritingEntityEventArgs.cs
- GenericTextProperties.cs
- TabPanel.cs
- StringValueConverter.cs
- DirectoryObjectSecurity.cs
- IERequestCache.cs
- Int32Storage.cs
- SiteMapProvider.cs
- PropertyItem.cs
- StrongNameUtility.cs
- _ProxyRegBlob.cs
- PropertyInfoSet.cs
- initElementDictionary.cs
- BuildDependencySet.cs
- ColumnPropertiesGroup.cs
- SqlFileStream.cs
- KeyFrames.cs
- KeySplineConverter.cs
- EventMappingSettingsCollection.cs
- PageParserFilter.cs
- HttpRequestCacheValidator.cs
- SQLResource.cs
- IssuerInformation.cs
- WebPartVerbsEventArgs.cs
- BaseProcessProtocolHandler.cs
- LowerCaseStringConverter.cs
- TextTreeUndoUnit.cs
- XmlArrayItemAttributes.cs
- TableLayoutPanelResizeGlyph.cs
- WindowsSolidBrush.cs
- Constraint.cs
- DbDataRecord.cs
- TypeResolver.cs
- RelatedCurrencyManager.cs
- DriveInfo.cs
- Speller.cs
- TextStore.cs
- dsa.cs
- HostProtectionPermission.cs
- ProtectedConfigurationSection.cs
- UpdatePanelTrigger.cs
- ListSortDescription.cs
- InvalidPropValue.cs
- TextTreeTextNode.cs
- ServiceRoute.cs
- NavigationExpr.cs
- NavigateUrlConverter.cs
- TemplatedAdorner.cs
- EventDriven.cs
- SharedUtils.cs
- DetailsViewInsertEventArgs.cs
- ProfileBuildProvider.cs
- SqlClientMetaDataCollectionNames.cs
- StylusCollection.cs
- SiteMapNodeCollection.cs
- PasswordDeriveBytes.cs
- CompressEmulationStream.cs
- LambdaSerializationException.cs
- IdentityHolder.cs
- WebConfigurationHost.cs
- IPPacketInformation.cs
- StorageMappingItemLoader.cs
- FrameworkElementAutomationPeer.cs
- AspNetSynchronizationContext.cs
- NominalTypeEliminator.cs
- LogLogRecordEnumerator.cs
- Utils.cs
- HeaderPanel.cs
- XmlParserContext.cs
- XXXInfos.cs
- CurrencyWrapper.cs
- ScriptMethodAttribute.cs
- _AuthenticationState.cs
- LineBreak.cs
- LocatorManager.cs
- ReadOnlyState.cs
- Missing.cs
- Property.cs
- UriParserTemplates.cs
- NamedPermissionSet.cs
- AudioException.cs
- HostedImpersonationContext.cs