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
- PermissionSetEnumerator.cs
- PlaceHolder.cs
- ObjectStateEntry.cs
- TriggerAction.cs
- DrawListViewSubItemEventArgs.cs
- PermissionRequestEvidence.cs
- XmlSchemaAttributeGroup.cs
- SchemaAttDef.cs
- DBNull.cs
- InitiatorSessionSymmetricMessageSecurityProtocol.cs
- EntityFrameworkVersions.cs
- EntityDataSourceContextDisposingEventArgs.cs
- DetailsViewUpdatedEventArgs.cs
- MailAddress.cs
- PolicyUnit.cs
- TdsEnums.cs
- RegexMatchCollection.cs
- PropertyDescriptor.cs
- Int64Storage.cs
- Encoder.cs
- GlobalAllocSafeHandle.cs
- WarningException.cs
- BindingSourceDesigner.cs
- WebPartVerbCollection.cs
- XamlReaderHelper.cs
- FunctionImportMapping.cs
- DataGridCellClipboardEventArgs.cs
- AutoGeneratedFieldProperties.cs
- MissingSatelliteAssemblyException.cs
- oledbmetadatacolumnnames.cs
- WebColorConverter.cs
- XmlnsPrefixAttribute.cs
- UrlMappingsSection.cs
- RegionData.cs
- PolyBezierSegment.cs
- nulltextcontainer.cs
- StyleCollectionEditor.cs
- DiagnosticsConfiguration.cs
- XmlArrayItemAttributes.cs
- ComPlusInstanceProvider.cs
- SpeechAudioFormatInfo.cs
- DetailsViewActionList.cs
- XmlCDATASection.cs
- ObjectView.cs
- FilterableAttribute.cs
- BooleanAnimationBase.cs
- EntityModelBuildProvider.cs
- ViewValidator.cs
- CombinedGeometry.cs
- VirtualDirectoryMapping.cs
- ClientSideQueueItem.cs
- HtmlTextArea.cs
- Header.cs
- UIElementPropertyUndoUnit.cs
- VirtualPath.cs
- WindowsAuthenticationModule.cs
- InnerItemCollectionView.cs
- Manipulation.cs
- DocumentGridPage.cs
- TraceXPathNavigator.cs
- FrugalMap.cs
- VarInfo.cs
- AccessText.cs
- HyperLinkDesigner.cs
- GridViewSortEventArgs.cs
- BackStopAuthenticationModule.cs
- Vector3DKeyFrameCollection.cs
- X509ChainPolicy.cs
- SettingsPropertyValueCollection.cs
- XmlNamespaceManager.cs
- WebPartHelpVerb.cs
- TypeLoader.cs
- ScriptRegistrationManager.cs
- CrossAppDomainChannel.cs
- PropertyDescriptor.cs
- WebSysDefaultValueAttribute.cs
- ToolStripDropDownButton.cs
- MetadataAssemblyHelper.cs
- StorageEntityContainerMapping.cs
- MsmqAuthenticationMode.cs
- DataRelation.cs
- ProtocolsSection.cs
- AnnotationStore.cs
- XmlIterators.cs
- metadatamappinghashervisitor.cs
- ConfigXmlCDataSection.cs
- CompilerErrorCollection.cs
- UnsafeNativeMethods.cs
- Point3DValueSerializer.cs
- ComplexLine.cs
- SharedPersonalizationStateInfo.cs
- WindowsAuthenticationModule.cs
- BinaryKeyIdentifierClause.cs
- SqlCachedBuffer.cs
- DataBindingHandlerAttribute.cs
- CheckedPointers.cs
- HtmlTableRow.cs
- ImageAttributes.cs
- CharacterMetrics.cs
- AuthorizationPolicyTypeElement.cs