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
- Rules.cs
- WorkItem.cs
- Switch.cs
- ThaiBuddhistCalendar.cs
- CompressEmulationStream.cs
- RoutingExtensionElement.cs
- AsnEncodedData.cs
- WindowProviderWrapper.cs
- IdnElement.cs
- OverflowException.cs
- InvalidWMPVersionException.cs
- RoutedEventValueSerializer.cs
- InputBuffer.cs
- DesignerProperties.cs
- Help.cs
- FillRuleValidation.cs
- Sorting.cs
- TextStore.cs
- HttpListenerResponse.cs
- WindowClosedEventArgs.cs
- ProxyWebPartConnectionCollection.cs
- DefaultPrintController.cs
- ContentType.cs
- PointAnimationUsingPath.cs
- DesignerLoader.cs
- TargetControlTypeCache.cs
- SqlLiftWhereClauses.cs
- ProcessHostMapPath.cs
- LinkedResourceCollection.cs
- PanelStyle.cs
- IIS7WorkerRequest.cs
- SmiContext.cs
- Baml2006KnownTypes.cs
- XslVisitor.cs
- NotifyInputEventArgs.cs
- DataGridViewCellConverter.cs
- NetSectionGroup.cs
- TemplateInstanceAttribute.cs
- FlowDocumentReader.cs
- XmlWellformedWriter.cs
- OracleLob.cs
- HorizontalAlignConverter.cs
- SubordinateTransaction.cs
- WindowsSecurityTokenAuthenticator.cs
- HotCommands.cs
- Dictionary.cs
- NonParentingControl.cs
- CodeVariableReferenceExpression.cs
- TaskExceptionHolder.cs
- TablePatternIdentifiers.cs
- BitmapFrame.cs
- Types.cs
- Point4D.cs
- PropertyChangeTracker.cs
- Column.cs
- CustomAttribute.cs
- DateTimeParse.cs
- DataGridViewTextBoxEditingControl.cs
- ContractsBCL.cs
- AbandonedMutexException.cs
- PrintingPermission.cs
- SqlCacheDependencyDatabaseCollection.cs
- RelationHandler.cs
- X509Extension.cs
- AsymmetricAlgorithm.cs
- TraceInternal.cs
- BitmapDownload.cs
- WebPartChrome.cs
- TextEditorLists.cs
- WebMessageFormatHelper.cs
- XmlSchemaObjectTable.cs
- LinqDataSourceContextData.cs
- ColumnWidthChangingEvent.cs
- cookiecollection.cs
- ObjectParameter.cs
- BitmapSourceSafeMILHandle.cs
- WebBrowserUriTypeConverter.cs
- SQLString.cs
- StylusSystemGestureEventArgs.cs
- ScriptResourceInfo.cs
- AttachmentService.cs
- AbandonedMutexException.cs
- FreezableOperations.cs
- XamlSerializer.cs
- exports.cs
- MimeParameter.cs
- DoubleStorage.cs
- QilTernary.cs
- RetrieveVirtualItemEventArgs.cs
- PropVariant.cs
- TextEditorCopyPaste.cs
- TreeNodeStyle.cs
- SymbolType.cs
- EventManager.cs
- ProcessHostMapPath.cs
- XmlSerializerSection.cs
- TableColumn.cs
- HyperLink.cs
- MarshalDirectiveException.cs
- X509CertificateRecipientServiceCredential.cs