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
- ApplicationServiceHelper.cs
- XmlILStorageConverter.cs
- LogEntrySerializationException.cs
- Point.cs
- SqlConnectionString.cs
- TypeHelpers.cs
- EventWaitHandleSecurity.cs
- DesignerLabelAdapter.cs
- TabControlEvent.cs
- TextMetrics.cs
- Conditional.cs
- PerformanceCounterPermission.cs
- ContainerTracking.cs
- Cell.cs
- DesignerAttribute.cs
- ValidatingReaderNodeData.cs
- StringReader.cs
- TTSVoice.cs
- NavigationProgressEventArgs.cs
- SoundPlayerAction.cs
- XpsS0ValidatingLoader.cs
- ImmutableObjectAttribute.cs
- WindowsRichEdit.cs
- ModelItemCollectionImpl.cs
- BevelBitmapEffect.cs
- JsonSerializer.cs
- Range.cs
- EntityPropertyMappingAttribute.cs
- safelink.cs
- DataGridTextBox.cs
- HostedBindingBehavior.cs
- EventMetadata.cs
- DataGridViewComboBoxColumn.cs
- CollectionConverter.cs
- DataTrigger.cs
- ISFTagAndGuidCache.cs
- TemplateBindingExpressionConverter.cs
- UIElement.cs
- AncestorChangedEventArgs.cs
- TCPListener.cs
- ToolboxItemWrapper.cs
- GradientSpreadMethodValidation.cs
- ObjectDataSourceFilteringEventArgs.cs
- SQLDouble.cs
- Highlights.cs
- XPathCompiler.cs
- TextTreeTextElementNode.cs
- SqlDelegatedTransaction.cs
- _emptywebproxy.cs
- ControlEvent.cs
- TextContainer.cs
- CodeRemoveEventStatement.cs
- StateMachineWorkflowDesigner.cs
- HTMLTagNameToTypeMapper.cs
- _SecureChannel.cs
- UnionCodeGroup.cs
- TargetInvocationException.cs
- ControlBuilderAttribute.cs
- IssuanceLicense.cs
- UnsafeNativeMethods.cs
- TCEAdapterGenerator.cs
- DesignerActionHeaderItem.cs
- CompositeDuplexBindingElement.cs
- QuerySettings.cs
- HttpListenerException.cs
- WebPartsPersonalization.cs
- BitmapPalette.cs
- WebControlToolBoxItem.cs
- SqlProcedureAttribute.cs
- ReaderContextStackData.cs
- Translator.cs
- EventListenerClientSide.cs
- HttpCacheParams.cs
- UpdateProgress.cs
- HttpServerVarsCollection.cs
- Parameter.cs
- OutputScope.cs
- TextServicesCompartment.cs
- CompositeCollectionView.cs
- RouteParser.cs
- ServiceTimeoutsBehavior.cs
- ClientEventManager.cs
- ProcessHostMapPath.cs
- Menu.cs
- SecureUICommand.cs
- ZipPackage.cs
- Tokenizer.cs
- ColorAnimationUsingKeyFrames.cs
- ApplicationBuildProvider.cs
- ColorKeyFrameCollection.cs
- ListViewContainer.cs
- cookiecollection.cs
- Parameter.cs
- BaseTreeIterator.cs
- ApplicationException.cs
- AstTree.cs
- GridViewItemAutomationPeer.cs
- PerfCounterSection.cs
- Vector3dCollection.cs
- Events.cs