Example #1
0
        /// <summary>
        ///     Creates a term expression of the form: "<paramref name="literal" /> in <paramref name="range" /> with all possible values being
        ///     <paramref
        ///         name="domain" />
        ///     ".
        /// </summary>
        internal static DomainTermExpr MakeTermExpression(BoolLiteral literal, IEnumerable <Constant> domain, IEnumerable <Constant> range)
        {
            var domainSet = new Set <Constant>(domain, Constant.EqualityComparer);
            var rangeSet  = new Set <Constant>(range, Constant.EqualityComparer);

            return(MakeTermExpression(literal, domainSet, rangeSet));
        }
Example #2
0
 internal static TermExpr <DomainConstraint <BoolLiteral, Constant> > MakeTermExpression(
     BoolLiteral literal,
     Set <Constant> domain,
     Set <Constant> range)
 {
     domain.MakeReadOnly();
     range.MakeReadOnly();
     return(new TermExpr <DomainConstraint <BoolLiteral, Constant> >((IEqualityComparer <DomainConstraint <BoolLiteral, Constant> >)System.Collections.Generic.EqualityComparer <DomainConstraint <BoolLiteral, Constant> > .Default, new DomainConstraint <BoolLiteral, Constant>(new DomainVariable <BoolLiteral, Constant>(literal, domain, BoolLiteral.EqualityIdentifierComparer), range)));
 }
Example #3
0
        internal static TermExpr <DomainConstraint <BoolLiteral, Constant> > MakeTermExpression(
            BoolLiteral literal,
            IEnumerable <Constant> domain,
            IEnumerable <Constant> range)
        {
            Set <Constant> domain1 = new Set <Constant>(domain, Constant.EqualityComparer);
            Set <Constant> range1  = new Set <Constant>(range, Constant.EqualityComparer);

            return(BoolLiteral.MakeTermExpression(literal, domain1, range1));
        }
Example #4
0
        protected override bool IsEqualTo(BoolLiteral right)
        {
            var rightBoolean = right as CellIdBoolean;

            if (rightBoolean == null)
            {
                return(false);
            }
            return(m_index == rightBoolean.m_index);
        }
Example #5
0
        protected override bool IsEqualTo(BoolLiteral right)
        {
            var rightBoolean = right as RoleBoolean;

            if (rightBoolean == null)
            {
                return(false);
            }
            return(m_metadataItem == rightBoolean.m_metadataItem);
        }
        protected override bool IsEqualTo(BoolLiteral right)
        {
            CellIdBoolean cellIdBoolean = right as CellIdBoolean;

            if (cellIdBoolean == null)
            {
                return(false);
            }
            return(this.m_index == cellIdBoolean.m_index);
        }
Example #7
0
        /// <summary>
        ///     Creates a term expression of the form: "<paramref name="literal" /> in <paramref name="range" /> with all possible values being
        ///     <paramref
        ///         name="domain" />
        ///     ".
        /// </summary>
        internal static DomainTermExpr MakeTermExpression(BoolLiteral literal, Set <Constant> domain, Set <Constant> range)
        {
            domain.MakeReadOnly();
            range.MakeReadOnly();

            var variable   = new DomainVariable(literal, domain, EqualityIdentifierComparer);
            var constraint = new DomainConstraint(variable, range);
            var result     = new DomainTermExpr(EqualityComparer <DomainConstraint> .Default, constraint);

            return(result);
        }
        protected override bool IsIdentifierEqualTo(BoolLiteral right)
        {
            MemberRestriction memberRestriction = right as MemberRestriction;

            if (memberRestriction == null)
            {
                return(false);
            }
            if (object.ReferenceEquals((object)this, (object)memberRestriction))
            {
                return(true);
            }
            return(ProjectedSlot.EqualityComparer.Equals((ProjectedSlot)this.m_restrictedMemberSlot, (ProjectedSlot)memberRestriction.m_restrictedMemberSlot));
        }
Example #9
0
        // <summary>
        // See <see cref="BoolLiteral.IsIdentifierEqualTo" />. Member restriction can be incomplete for this operation.
        // </summary>
        protected override bool IsIdentifierEqualTo(BoolLiteral right)
        {
            var rightOneOfConst = right as MemberRestriction;

            if (rightOneOfConst == null)
            {
                return(false);
            }
            if (ReferenceEquals(this, rightOneOfConst))
            {
                return(true);
            }
            return(ProjectedSlot.EqualityComparer.Equals(m_restrictedMemberSlot, rightOneOfConst.m_restrictedMemberSlot));
        }
Example #10
0
        internal override BoolExpr <DomainConstraint <BoolLiteral, Constant> > GetDomainBoolExpression(
            MemberDomainMap domainMap)
        {
            IEnumerable <Constant> elements = (IEnumerable <Constant>) new Constant[1]
            {
                (Constant) new ScalarConstant((object)true)
            };

            return((BoolExpr <DomainConstraint <BoolLiteral, Constant> >)BoolLiteral.MakeTermExpression((BoolLiteral)this, new Set <Constant>((IEnumerable <Constant>) new Constant[2]
            {
                (Constant) new ScalarConstant((object)true),
                (Constant) new ScalarConstant((object)false)
            }, Constant.EqualityComparer).MakeReadOnly(), new Set <Constant>(elements, Constant.EqualityComparer).MakeReadOnly()));
        }
Example #11
0
        // <summary>
        // See <see cref="BoolLiteral.IsEqualTo" />. Member restriction can be incomplete for this operation.
        // </summary>
        protected override bool IsEqualTo(BoolLiteral right)
        {
            var rightRestriction = right as MemberRestriction;

            if (rightRestriction == null)
            {
                return(false);
            }
            if (ReferenceEquals(this, rightRestriction))
            {
                return(true);
            }
            if (false == ProjectedSlot.EqualityComparer.Equals(m_restrictedMemberSlot, rightRestriction.m_restrictedMemberSlot))
            {
                return(false);
            }

            return(m_domain.IsEqualTo(rightRestriction.m_domain));
        }
 protected override DbExpression BooleanLiteralAsCql(BoolLiteral literal, bool skipIsNotNull)
 {
     return(literal.AsCqt(m_row, skipIsNotNull));
 }
Example #13
0
 protected abstract bool IsEqualTo(BoolLiteral right);
Example #14
0
 /// <summary>
 ///     Checks if the identifier in this is the same as the one in <paramref name="right" />.
 /// </summary>
 protected virtual bool IsIdentifierEqualTo(BoolLiteral right)
 {
     return(IsEqualTo(right));
 }
 internal BoolExpression Create(BoolLiteral literal)
 {
     return(new BoolExpression(literal.GetDomainBoolExpression(this.m_memberDomainMap), this.m_memberDomainMap));
 }
 internal override BoolExpr <DomainConstraint <BoolLiteral, Constant> > GetDomainBoolExpression(
     MemberDomainMap domainMap)
 {
     return(domainMap == null ? (BoolExpr <DomainConstraint <BoolLiteral, Constant> >)BoolLiteral.MakeTermExpression((BoolLiteral)this, this.m_domain.AllPossibleValues, this.m_domain.Values) : (BoolExpr <DomainConstraint <BoolLiteral, Constant> >)BoolLiteral.MakeTermExpression((BoolLiteral)this, domainMap.GetDomain(this.m_restrictedMemberSlot.MemberPath), this.m_domain.Values));
 }
 protected override StringBuilder BooleanLiteralAsCql(BoolLiteral literal, bool skipIsNotNull)
 {
     return(literal.AsEsql(m_builder, m_blockAlias, skipIsNotNull));
 }
 internal static BoolExpression CreateLiteral(
     BoolLiteral literal,
     MemberDomainMap memberDomainMap)
 {
     return(new BoolExpression(literal.GetDomainBoolExpression(memberDomainMap), memberDomainMap));
 }
 protected abstract T_Return BooleanLiteralAsCql(BoolLiteral literal, bool skipIsNotNull);
        // effects: Creates a new boolean expression using the memberDomainMap of this expression
        internal BoolExpression Create(BoolLiteral literal)
        {
            var expr = literal.GetDomainBoolExpression(m_memberDomainMap);

            return(new BoolExpression(expr, m_memberDomainMap));
        }