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
- DefaultWorkflowSchedulerService.cs
- OletxVolatileEnlistment.cs
- XmlUrlResolver.cs
- OdbcUtils.cs
- SelectionHighlightInfo.cs
- Graphics.cs
- BasicBrowserDialog.designer.cs
- ChangePassword.cs
- XmlUtilWriter.cs
- MenuItem.cs
- WSFederationHttpBinding.cs
- FormatVersion.cs
- SettingsBindableAttribute.cs
- DataKeyArray.cs
- CoTaskMemUnicodeSafeHandle.cs
- MethodToken.cs
- SimpleTextLine.cs
- TextChange.cs
- AttachedPropertiesService.cs
- DetailsViewRowCollection.cs
- ListViewTableCell.cs
- StylusCaptureWithinProperty.cs
- CodeMemberMethod.cs
- SignedXml.cs
- CategoryNameCollection.cs
- Journal.cs
- RuleProcessor.cs
- SQLDouble.cs
- Interop.cs
- RepeatBehavior.cs
- CustomErrorsSectionWrapper.cs
- XPathDescendantIterator.cs
- DetailsViewUpdateEventArgs.cs
- SerializationInfoEnumerator.cs
- Point.cs
- XmlSequenceWriter.cs
- XComponentModel.cs
- SafeEventHandle.cs
- WebBrowserNavigatedEventHandler.cs
- ObjectList.cs
- RowTypePropertyElement.cs
- Privilege.cs
- FilterableAttribute.cs
- GridItemPatternIdentifiers.cs
- ClientTarget.cs
- Memoizer.cs
- WindowsListBox.cs
- DataGridView.cs
- CopyOfAction.cs
- ImmutableObjectAttribute.cs
- XmlValueConverter.cs
- HttpCapabilitiesBase.cs
- SchemeSettingElement.cs
- ScrollChangedEventArgs.cs
- TrustLevel.cs
- TypedTableBaseExtensions.cs
- PanningMessageFilter.cs
- SpellCheck.cs
- TimeSpanSecondsConverter.cs
- HttpException.cs
- SkinBuilder.cs
- SqlCharStream.cs
- VariableExpressionConverter.cs
- AsnEncodedData.cs
- _Connection.cs
- TimeSpanOrInfiniteValidator.cs
- FrameworkElement.cs
- ZoneMembershipCondition.cs
- Console.cs
- Bidi.cs
- XmlNotation.cs
- Constraint.cs
- FrameworkTextComposition.cs
- KeyFrames.cs
- PermissionSetTriple.cs
- SessionEndingEventArgs.cs
- SmiMetaData.cs
- ClientData.cs
- Stopwatch.cs
- ReadOnlyDataSourceView.cs
- CalendarDay.cs
- _AutoWebProxyScriptHelper.cs
- MediaTimeline.cs
- OrderingExpression.cs
- SafeFileHandle.cs
- NamedObject.cs
- CodeCatchClauseCollection.cs
- WorkflowStateRollbackService.cs
- LinkLabelLinkClickedEvent.cs
- XmlSortKeyAccumulator.cs
- SafeThemeHandle.cs
- EventBuilder.cs
- SoapEnumAttribute.cs
- ApplicationProxyInternal.cs
- ActionFrame.cs
- XmlSchemaCollection.cs
- GeometryHitTestParameters.cs
- StreamGeometry.cs
- FunctionUpdateCommand.cs
- XmlILOptimizerVisitor.cs