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
- EntitySetRetriever.cs
- PixelShader.cs
- Translator.cs
- BitmapEffectRenderDataResource.cs
- RowBinding.cs
- BitmapEffectrendercontext.cs
- CodeMethodReturnStatement.cs
- StylusPointPropertyId.cs
- RowVisual.cs
- MimeFormatter.cs
- LinkDesigner.cs
- XmlConvert.cs
- ReflectionHelper.cs
- AuthenticationModuleElementCollection.cs
- StaticContext.cs
- KnownBoxes.cs
- InstanceCreationEditor.cs
- ByteStack.cs
- WebPartVerbsEventArgs.cs
- ReplyChannel.cs
- PartitionResolver.cs
- SqlResolver.cs
- PersonalizationProviderCollection.cs
- IndependentAnimationStorage.cs
- BrowserCapabilitiesFactoryBase.cs
- SqlReorderer.cs
- DependencyPropertyKey.cs
- compensatingcollection.cs
- XmlNodeChangedEventArgs.cs
- TypedDatasetGenerator.cs
- ArgumentException.cs
- TimersDescriptionAttribute.cs
- KoreanCalendar.cs
- mda.cs
- PrimitiveCodeDomSerializer.cs
- UnmanagedMemoryStreamWrapper.cs
- GridPattern.cs
- StringTraceRecord.cs
- BuildProvidersCompiler.cs
- SafeFileMappingHandle.cs
- WpfKnownMemberInvoker.cs
- SerialStream.cs
- WorkflowRuntimeEndpoint.cs
- HealthMonitoringSectionHelper.cs
- UdpDiscoveryMessageFilter.cs
- WinFormsSpinner.cs
- ClientTargetCollection.cs
- SqlProviderServices.cs
- DataGridViewEditingControlShowingEventArgs.cs
- ReadOnlyDictionary.cs
- MemoryRecordBuffer.cs
- documentation.cs
- EventManager.cs
- SecurityTokenProviderContainer.cs
- EmptyControlCollection.cs
- ProfileModule.cs
- CachedBitmap.cs
- WebPartDisplayMode.cs
- DefaultHttpHandler.cs
- Brushes.cs
- ConnectionStringsSection.cs
- DataGridViewRowsRemovedEventArgs.cs
- VersionedStreamOwner.cs
- DescendantOverDescendantQuery.cs
- CommentEmitter.cs
- RemoteWebConfigurationHostServer.cs
- XmlParser.cs
- RecordConverter.cs
- ScopelessEnumAttribute.cs
- DataRowView.cs
- DebuggerAttributes.cs
- DataTemplateSelector.cs
- HtmlHead.cs
- RenderData.cs
- BoundField.cs
- StateBag.cs
- XmlProcessingInstruction.cs
- ScriptReference.cs
- GeneratedContractType.cs
- DrawingCollection.cs
- SynchronizedDisposablePool.cs
- BufferedOutputStream.cs
- SingleAnimationBase.cs
- RewritingPass.cs
- PrintDocument.cs
- ToolBarButton.cs
- RadioButtonStandardAdapter.cs
- NegotiationTokenAuthenticatorStateCache.cs
- NullReferenceException.cs
- TabControlAutomationPeer.cs
- ServiceOperationListItem.cs
- EmissiveMaterial.cs
- SqlDataSourceConfigureSortForm.cs
- AutoScrollHelper.cs
- DetailsViewModeEventArgs.cs
- GenericIdentity.cs
- SiteMapDataSource.cs
- SizeF.cs
- XmlReader.cs
- Imaging.cs