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
- SystemThemeKey.cs
- LongTypeConverter.cs
- TemplateControl.cs
- ProtocolsConfigurationHandler.cs
- Point3D.cs
- figurelength.cs
- SecurityUtils.cs
- ContainerParagraph.cs
- InProcStateClientManager.cs
- StickyNoteContentControl.cs
- UpdateTranslator.cs
- IconConverter.cs
- BuiltInExpr.cs
- Attributes.cs
- DispatcherObject.cs
- RequestTimeoutManager.cs
- GradientBrush.cs
- Bold.cs
- XmlUrlResolver.cs
- DCSafeHandle.cs
- XPathParser.cs
- AspNetSynchronizationContext.cs
- MetafileHeader.cs
- StringWriter.cs
- BreakRecordTable.cs
- DetailsViewRow.cs
- AdjustableArrowCap.cs
- CollectionView.cs
- AppSettings.cs
- RangeValuePattern.cs
- GlyphRun.cs
- _AutoWebProxyScriptEngine.cs
- FrameworkElementFactoryMarkupObject.cs
- ConfigXmlComment.cs
- UIElementAutomationPeer.cs
- Missing.cs
- ToolStripGrip.cs
- NamespaceTable.cs
- OleDbError.cs
- TheQuery.cs
- MenuEventArgs.cs
- ZoomPercentageConverter.cs
- VersionPair.cs
- BitmapMetadata.cs
- ProjectionQueryOptionExpression.cs
- DecimalSumAggregationOperator.cs
- NetworkInformationPermission.cs
- Oid.cs
- ServicePointManager.cs
- ExternalDataExchangeClient.cs
- DelegateArgumentValue.cs
- DataSourceXmlElementAttribute.cs
- HwndAppCommandInputProvider.cs
- DiscreteKeyFrames.cs
- GlobalItem.cs
- RenderingEventArgs.cs
- ThreadStartException.cs
- UncommonField.cs
- Screen.cs
- JsonQNameDataContract.cs
- TableLayoutSettingsTypeConverter.cs
- PointLightBase.cs
- LoadWorkflowCommand.cs
- XmlReaderSettings.cs
- InfoCardService.cs
- LongMinMaxAggregationOperator.cs
- ResXFileRef.cs
- Delegate.cs
- LinqDataSourceSelectEventArgs.cs
- TreeIterators.cs
- DrawingCollection.cs
- XmlUrlResolver.cs
- InvariantComparer.cs
- ErrorInfoXmlDocument.cs
- DataGridColumnCollection.cs
- ConstructorArgumentAttribute.cs
- ToolStripDesignerAvailabilityAttribute.cs
- GeneralTransform3DCollection.cs
- FtpWebRequest.cs
- FixedSOMTable.cs
- Rule.cs
- HtmlShim.cs
- Baml6ConstructorInfo.cs
- DataView.cs
- DetailsViewPageEventArgs.cs
- RequestNavigateEventArgs.cs
- ContextStack.cs
- FilterException.cs
- _OSSOCK.cs
- TextSelectionProcessor.cs
- AuthStoreRoleProvider.cs
- ColumnMapCopier.cs
- DataListGeneralPage.cs
- IgnoreDataMemberAttribute.cs
- XmlBinaryReaderSession.cs
- DiscoveryClientDocuments.cs
- MouseEventArgs.cs
- DiscoveryClientDuplexChannel.cs
- RawStylusInputCustomDataList.cs
- NetNamedPipeSecurityElement.cs