Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataEntity / System / Data / Map / ViewGeneration / Structures / IfJoinedCondition.cs / 1 / 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
- Mappings.cs
- RIPEMD160.cs
- SharedUtils.cs
- DataGridViewTopLeftHeaderCell.cs
- RelatedCurrencyManager.cs
- ReadOnlyNameValueCollection.cs
- BrushConverter.cs
- PrintDialog.cs
- Region.cs
- XmlCDATASection.cs
- ComponentRenameEvent.cs
- NativeActivityAbortContext.cs
- SchemaImporter.cs
- DataGridColumnHeader.cs
- DataException.cs
- DesignTimeTemplateParser.cs
- RegexCharClass.cs
- XhtmlBasicImageAdapter.cs
- OracleDataAdapter.cs
- HttpConfigurationSystem.cs
- SqlCacheDependency.cs
- TextEncodedRawTextWriter.cs
- CodeSnippetTypeMember.cs
- ResourcePermissionBaseEntry.cs
- DataPagerFieldCollection.cs
- HScrollProperties.cs
- CacheAxisQuery.cs
- ControlTemplate.cs
- ListViewUpdateEventArgs.cs
- PersianCalendar.cs
- GeneralTransform2DTo3DTo2D.cs
- WebPartConnectionsEventArgs.cs
- Binding.cs
- AspNetSynchronizationContext.cs
- InternalMappingException.cs
- AliasExpr.cs
- BufferedStream.cs
- XmlSignificantWhitespace.cs
- DataFormat.cs
- SmiContextFactory.cs
- dataSvcMapFileLoader.cs
- SqlDataAdapter.cs
- SafeFileMapViewHandle.cs
- CryptoHelper.cs
- AnimationClock.cs
- EditorPart.cs
- FixedBufferAttribute.cs
- TextEditorContextMenu.cs
- ValidationErrorEventArgs.cs
- TextTreeObjectNode.cs
- InternalTypeHelper.cs
- CodeObjectCreateExpression.cs
- ByteStack.cs
- LambdaCompiler.Binary.cs
- HtmlButton.cs
- RijndaelCryptoServiceProvider.cs
- _UriSyntax.cs
- Rectangle.cs
- PrintPageEvent.cs
- UriTemplateTrieLocation.cs
- Tokenizer.cs
- AdapterDictionary.cs
- Mapping.cs
- TextEditorContextMenu.cs
- Trace.cs
- Utils.cs
- EmbossBitmapEffect.cs
- FormViewPagerRow.cs
- FlowDocumentPage.cs
- VectorAnimation.cs
- CultureNotFoundException.cs
- ISAPIRuntime.cs
- Handle.cs
- RichTextBoxAutomationPeer.cs
- WindowsSlider.cs
- ContentHostHelper.cs
- PointHitTestResult.cs
- BindingOperations.cs
- CompiledRegexRunnerFactory.cs
- DataControlFieldCell.cs
- BamlResourceSerializer.cs
- BitmapInitialize.cs
- JsonDataContract.cs
- AutoGeneratedField.cs
- PerfService.cs
- PaperSource.cs
- DataGridViewCellPaintingEventArgs.cs
- MemoryRecordBuffer.cs
- DataBoundControlAdapter.cs
- DataRecord.cs
- ReliabilityContractAttribute.cs
- ProgressBar.cs
- httpstaticobjectscollection.cs
- CuspData.cs
- GotoExpression.cs
- TimelineGroup.cs
- CustomValidator.cs
- IgnoreDeviceFilterElementCollection.cs
- ThreadExceptionEvent.cs
- ResourcePropertyMemberCodeDomSerializer.cs