Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- SmtpSpecifiedPickupDirectoryElement.cs
- XmlCharType.cs
- ObjectDataSourceEventArgs.cs
- RangeValuePattern.cs
- TextServicesDisplayAttributePropertyRanges.cs
- DataBinder.cs
- EncryptedPackageFilter.cs
- ExpressionBuilderCollection.cs
- ToolStripDesignerAvailabilityAttribute.cs
- ParserOptions.cs
- UIElementParagraph.cs
- MaskedTextBoxDesigner.cs
- PauseStoryboard.cs
- ListCollectionView.cs
- QuadraticBezierSegment.cs
- UIElementAutomationPeer.cs
- SingleStorage.cs
- Canvas.cs
- RowToFieldTransformer.cs
- XamlDebuggerXmlReader.cs
- GenericIdentity.cs
- Rotation3DAnimationUsingKeyFrames.cs
- StaticContext.cs
- XamlTypeMapper.cs
- COM2ExtendedBrowsingHandler.cs
- OdbcTransaction.cs
- PropertyChangedEventManager.cs
- COM2ExtendedTypeConverter.cs
- TextElementEnumerator.cs
- CompilerError.cs
- _SafeNetHandles.cs
- XmlMembersMapping.cs
- InputLanguageEventArgs.cs
- FormClosingEvent.cs
- ImageButton.cs
- SetterBaseCollection.cs
- DetailsViewDeletedEventArgs.cs
- FacetValueContainer.cs
- DataGridViewCellEventArgs.cs
- ConnectionManagementSection.cs
- EntityContainerEmitter.cs
- StreamWriter.cs
- EmbossBitmapEffect.cs
- InertiaTranslationBehavior.cs
- TypeLibConverter.cs
- Encoding.cs
- BindingGroup.cs
- QfeChecker.cs
- ContentPosition.cs
- VersionUtil.cs
- FileRecordSequenceHelper.cs
- TransactionBehavior.cs
- DbExpressionBuilder.cs
- XmlEncoding.cs
- HtmlElementCollection.cs
- SkinBuilder.cs
- PlainXmlWriter.cs
- ProfileService.cs
- GridViewCancelEditEventArgs.cs
- ThaiBuddhistCalendar.cs
- XmlSchemaGroupRef.cs
- _AutoWebProxyScriptEngine.cs
- FontConverter.cs
- StackOverflowException.cs
- CustomAttribute.cs
- CompilerGeneratedAttribute.cs
- LinqDataSourceInsertEventArgs.cs
- ArcSegment.cs
- TreeBuilderXamlTranslator.cs
- OleDbDataAdapter.cs
- dtdvalidator.cs
- LinkedList.cs
- ScriptingSectionGroup.cs
- RenderData.cs
- SqlTypeConverter.cs
- RemoteX509Token.cs
- SystemColorTracker.cs
- SecurityPolicySection.cs
- DataObjectCopyingEventArgs.cs
- GuidelineSet.cs
- BatchServiceHost.cs
- HttpGetProtocolReflector.cs
- TabletDeviceInfo.cs
- XamlHostingSection.cs
- CodeAccessSecurityEngine.cs
- RedistVersionInfo.cs
- OdbcConnectionHandle.cs
- SqlCommandSet.cs
- RtfControlWordInfo.cs
- NativeMethods.cs
- HtmlWindow.cs
- Events.cs
- Point3DCollectionValueSerializer.cs
- XmlTypeAttribute.cs
- CookieParameter.cs
- TrustSection.cs
- SystemWebSectionGroup.cs
- StringArrayConverter.cs
- Set.cs
- HttpProcessUtility.cs