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
- EventRouteFactory.cs
- AdornedElementPlaceholder.cs
- BreadCrumbTextConverter.cs
- InfoCardBaseException.cs
- CdpEqualityComparer.cs
- HttpPostedFile.cs
- HtmlTable.cs
- DPTypeDescriptorContext.cs
- Comparer.cs
- Storyboard.cs
- EdmError.cs
- _SSPISessionCache.cs
- TagPrefixInfo.cs
- PrintDocument.cs
- RowParagraph.cs
- SafeBitVector32.cs
- Msec.cs
- NavigationPropertyAccessor.cs
- ExtentCqlBlock.cs
- DataViewManager.cs
- AQNBuilder.cs
- ServerIdentity.cs
- sitestring.cs
- Setter.cs
- ProfileInfo.cs
- PathFigureCollectionConverter.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- MessageQueueInstaller.cs
- WindowsFormsHost.cs
- AliasedSlot.cs
- CollectionChange.cs
- SortQuery.cs
- SafeRightsManagementQueryHandle.cs
- HtmlControl.cs
- SetterTriggerConditionValueConverter.cs
- SqlUnionizer.cs
- CustomErrorCollection.cs
- OutputCacheSettings.cs
- DebugView.cs
- ManagedIStream.cs
- XmlSchemaAnnotation.cs
- PrivilegeNotHeldException.cs
- SinglePageViewer.cs
- RemoteCryptoRsaServiceProvider.cs
- Hex.cs
- WorkflowFileItem.cs
- UnsafeNativeMethods.cs
- ServerValidateEventArgs.cs
- Operator.cs
- TypeLibConverter.cs
- SqlUnionizer.cs
- Vector3DCollectionConverter.cs
- SimplePropertyEntry.cs
- ToolboxItemAttribute.cs
- AsymmetricSignatureFormatter.cs
- FilterException.cs
- PartialCachingControl.cs
- VideoDrawing.cs
- NullableFloatAverageAggregationOperator.cs
- KnownAssembliesSet.cs
- QueryExpression.cs
- ToolboxItemWrapper.cs
- MemberListBinding.cs
- ConstraintStruct.cs
- PartManifestEntry.cs
- InputLanguageEventArgs.cs
- VectorKeyFrameCollection.cs
- DataServiceRequestArgs.cs
- DbFunctionCommandTree.cs
- ContextMarshalException.cs
- FileChangesMonitor.cs
- CodeAccessSecurityEngine.cs
- BaseHashHelper.cs
- CustomTrackingQuery.cs
- ComboBox.cs
- CheckBox.cs
- NotFiniteNumberException.cs
- PinnedBufferMemoryStream.cs
- BrowserDefinitionCollection.cs
- ConfigurationLockCollection.cs
- GrammarBuilderRuleRef.cs
- DrawingAttributeSerializer.cs
- DockingAttribute.cs
- Int64KeyFrameCollection.cs
- PropertyMetadata.cs
- ResourceIDHelper.cs
- PrintController.cs
- TemplateControl.cs
- ContractReference.cs
- RuntimeResourceSet.cs
- PeerValidationBehavior.cs
- GeneralTransformGroup.cs
- ListBase.cs
- Size3D.cs
- FontClient.cs
- X509SecurityTokenAuthenticator.cs
- ListViewItem.cs
- EncryptedXml.cs
- ParamArrayAttribute.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs