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
- SoapAttributeAttribute.cs
- Matrix3D.cs
- AccessibleObject.cs
- ProcessHost.cs
- ElementUtil.cs
- DesignTimeTemplateParser.cs
- RepeatBehaviorConverter.cs
- SignalGate.cs
- DBBindings.cs
- StackSpiller.cs
- odbcmetadatacollectionnames.cs
- DesignTimeTemplateParser.cs
- DispatcherExceptionEventArgs.cs
- HtmlTextViewAdapter.cs
- Knowncolors.cs
- PanelDesigner.cs
- HelpInfo.cs
- PlaceHolder.cs
- AbstractSvcMapFileLoader.cs
- CollectionChangedEventManager.cs
- ExpressionVisitor.cs
- MetabaseSettingsIis7.cs
- UserNamePasswordServiceCredential.cs
- ToolStripPanelSelectionGlyph.cs
- PluralizationServiceUtil.cs
- Propagator.Evaluator.cs
- TextFormatterImp.cs
- dbdatarecord.cs
- AssemblyHash.cs
- DefaultHttpHandler.cs
- DesignSurface.cs
- StackOverflowException.cs
- WinHttpWebProxyFinder.cs
- StrongNameIdentityPermission.cs
- ContextMenuAutomationPeer.cs
- VariableAction.cs
- Hex.cs
- OciEnlistContext.cs
- LZCodec.cs
- _AuthenticationState.cs
- DataGridViewTextBoxColumn.cs
- SourceFileBuildProvider.cs
- InvalidDataException.cs
- DBDataPermission.cs
- PerfCounters.cs
- EditingMode.cs
- ConfigXmlElement.cs
- LineGeometry.cs
- SafeThreadHandle.cs
- BinaryCommonClasses.cs
- DataTableReader.cs
- SubstitutionDesigner.cs
- ReflectionHelper.cs
- WebColorConverter.cs
- GenericEnumerator.cs
- DbDataAdapter.cs
- StructuredTypeInfo.cs
- TypedTableBase.cs
- UInt16Storage.cs
- DescendentsWalker.cs
- StatusStrip.cs
- ListBindableAttribute.cs
- EpmCustomContentSerializer.cs
- ActionFrame.cs
- TemplatedAdorner.cs
- Encoder.cs
- ConfigViewGenerator.cs
- PenThreadPool.cs
- StatusBarItem.cs
- ExceptionTrace.cs
- Material.cs
- CustomCategoryAttribute.cs
- ValidationSummary.cs
- FormatSettings.cs
- DPTypeDescriptorContext.cs
- CustomSignedXml.cs
- ColumnResult.cs
- AnonymousIdentificationModule.cs
- TableLayoutSettingsTypeConverter.cs
- DrawingServices.cs
- Transform3DCollection.cs
- BackStopAuthenticationModule.cs
- ScrollChrome.cs
- Transform.cs
- QuaternionRotation3D.cs
- AppDomainGrammarProxy.cs
- DBConnectionString.cs
- InstanceDataCollection.cs
- TypedReference.cs
- WebRequestModuleElement.cs
- XmlSubtreeReader.cs
- IntegrationExceptionEventArgs.cs
- CodeAttributeDeclaration.cs
- QualifiedCellIdBoolean.cs
- TableRow.cs
- OleDbError.cs
- TargetConverter.cs
- QilXmlWriter.cs
- DocumentGridPage.cs
- GroupBoxAutomationPeer.cs