Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- listitem.cs
- CompilerTypeWithParams.cs
- Package.cs
- ClientConfigurationSystem.cs
- XmlException.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- UserMapPath.cs
- UpdateTranslator.cs
- ResourcePermissionBaseEntry.cs
- TextCompositionEventArgs.cs
- SqlDataSourceParameterParser.cs
- PolyLineSegmentFigureLogic.cs
- CodeBinaryOperatorExpression.cs
- UpdatePanelTrigger.cs
- EditCommandColumn.cs
- PriorityRange.cs
- DataServiceExpressionVisitor.cs
- TableLayoutColumnStyleCollection.cs
- BaseParser.cs
- Encoder.cs
- Task.cs
- DataGridViewMethods.cs
- DbQueryCommandTree.cs
- VariantWrapper.cs
- XmlAtomicValue.cs
- RTTrackingProfile.cs
- DatagridviewDisplayedBandsData.cs
- Pen.cs
- DbUpdateCommandTree.cs
- DbConnectionOptions.cs
- NullableBoolConverter.cs
- SQLMoney.cs
- HelpKeywordAttribute.cs
- ClientData.cs
- HttpBufferlessInputStream.cs
- HostedBindingBehavior.cs
- DropDownButton.cs
- WsiProfilesElementCollection.cs
- MsmqIntegrationMessageProperty.cs
- ElementNotEnabledException.cs
- SqlPersonalizationProvider.cs
- glyphs.cs
- WebPartManagerInternals.cs
- SqlBulkCopy.cs
- ExceptionHelpers.cs
- Stack.cs
- BlurEffect.cs
- _DynamicWinsockMethods.cs
- NameValueFileSectionHandler.cs
- FixedSOMTableCell.cs
- HelpInfo.cs
- DataPagerField.cs
- ListViewVirtualItemsSelectionRangeChangedEvent.cs
- ObjectTag.cs
- WebRequestModulesSection.cs
- BuildManager.cs
- keycontainerpermission.cs
- HttpModuleCollection.cs
- SelectedGridItemChangedEvent.cs
- WorkflowInstanceExtensionProvider.cs
- Geometry3D.cs
- SocketElement.cs
- PagePropertiesChangingEventArgs.cs
- TextElement.cs
- _BaseOverlappedAsyncResult.cs
- RecipientInfo.cs
- SQLBytes.cs
- UserPreferenceChangingEventArgs.cs
- DashStyle.cs
- DefaultProxySection.cs
- WorkflowDesignerMessageFilter.cs
- XmlIlGenerator.cs
- OrderedDictionary.cs
- Enum.cs
- KnownTypes.cs
- WorkflowViewManager.cs
- BinaryUtilClasses.cs
- ValueProviderWrapper.cs
- LayoutDump.cs
- ForwardPositionQuery.cs
- SlotInfo.cs
- DistributedTransactionPermission.cs
- HwndSubclass.cs
- HandledEventArgs.cs
- GenericTextProperties.cs
- LoginViewDesigner.cs
- Internal.cs
- FileChangeNotifier.cs
- RetrieveVirtualItemEventArgs.cs
- ProviderSettings.cs
- DownloadProgressEventArgs.cs
- CodeConditionStatement.cs
- ListViewSortEventArgs.cs
- HTMLTagNameToTypeMapper.cs
- WebPartCollection.cs
- WhereQueryOperator.cs
- ResizeGrip.cs
- Msec.cs
- BaseResourcesBuildProvider.cs
- XPathAncestorIterator.cs