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
- _NestedMultipleAsyncResult.cs
- Drawing.cs
- login.cs
- AssemblyNameProxy.cs
- X509CertificateStore.cs
- HtmlInputCheckBox.cs
- StyleBamlRecordReader.cs
- followingsibling.cs
- Int32Storage.cs
- ObjectListComponentEditor.cs
- DataSourceListEditor.cs
- UnmanagedMemoryStream.cs
- TextBlockAutomationPeer.cs
- CqlQuery.cs
- KnownBoxes.cs
- InheritablePropertyChangeInfo.cs
- DockAndAnchorLayout.cs
- HandlerWithFactory.cs
- GridEntryCollection.cs
- ThicknessAnimationUsingKeyFrames.cs
- WebUtil.cs
- DocumentViewerBaseAutomationPeer.cs
- AdapterDictionary.cs
- IPEndPoint.cs
- Utils.cs
- UserControl.cs
- ConfigPathUtility.cs
- EdmError.cs
- DictionaryCustomTypeDescriptor.cs
- PageTheme.cs
- HandlerWithFactory.cs
- ThemeableAttribute.cs
- PublisherMembershipCondition.cs
- BodyWriter.cs
- SafeCertificateContext.cs
- Configuration.cs
- SecureStringHasher.cs
- path.cs
- TextRangeEditTables.cs
- ProfileParameter.cs
- ContentWrapperAttribute.cs
- MarkupCompiler.cs
- TemplatedAdorner.cs
- SqlCommandBuilder.cs
- NewArrayExpression.cs
- HybridWebProxyFinder.cs
- ByteKeyFrameCollection.cs
- PermissionRequestEvidence.cs
- Image.cs
- ComponentDispatcher.cs
- GetImportedCardRequest.cs
- DefaultParameterValueAttribute.cs
- AnimationClockResource.cs
- TextInfo.cs
- DiscoveryService.cs
- AuthenticatedStream.cs
- safePerfProviderHandle.cs
- TextEditorContextMenu.cs
- FrameworkContentElement.cs
- AngleUtil.cs
- DataGridViewComboBoxColumn.cs
- HttpCacheParams.cs
- LabelLiteral.cs
- OletxTransactionManager.cs
- SocketCache.cs
- OleStrCAMarshaler.cs
- DataGridCommandEventArgs.cs
- GeneralTransformCollection.cs
- OdbcException.cs
- HandlerBase.cs
- MediaScriptCommandRoutedEventArgs.cs
- XmlObjectSerializerReadContext.cs
- ConfigXmlText.cs
- EmptyEnumerator.cs
- SafeEventLogWriteHandle.cs
- ConcurrentDictionary.cs
- DateTimeParse.cs
- SerializationAttributes.cs
- DesignOnlyAttribute.cs
- DiscoveryOperationContextExtension.cs
- InkCanvasInnerCanvas.cs
- SmtpMail.cs
- TextEffect.cs
- PEFileEvidenceFactory.cs
- HttpModuleActionCollection.cs
- SafeFindHandle.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- UserControlCodeDomTreeGenerator.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- FactoryGenerator.cs
- DataBindingExpressionBuilder.cs
- SHA384Managed.cs
- IdentityModelStringsVersion1.cs
- Literal.cs
- LiteralControl.cs
- StorageSetMapping.cs
- InputMethod.cs
- SocketInformation.cs
- RouteParameter.cs
- TextBox.cs