IfJoinedCondition.cs source code in C# .NET

Source code for the .NET framework in C#

                        

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(Dictionary remap) {
            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(Dictionary remap) {
            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

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK