/// <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)); }
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))); }
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)); }
protected override bool IsEqualTo(BoolLiteral right) { var rightBoolean = right as CellIdBoolean; if (rightBoolean == null) { return(false); } return(m_index == rightBoolean.m_index); }
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); }
/// <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)); }
// <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)); }
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())); }
// <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)); }
protected abstract bool IsEqualTo(BoolLiteral right);
/// <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)); }