Beispiel #1
0
 /// <summary>
 /// Ctor.
 /// </summary>
 /// <param name="type">is the type of outer join</param>
 /// <param name="left">is a property providing joined-on values</param>
 /// <param name="right">is a property providing joined-on values</param>
 /// <param name="additionalProperties">for any pairs of additional on-clause properties</param>
 public OuterJoinQualifier(OuterJoinType type, Expression left, Expression right,
                           IList <PropertyValueExpressionPair> additionalProperties)
 {
     JoinType             = type;
     Left                 = left;
     Right                = right;
     AdditionalProperties = additionalProperties;
 }
Beispiel #2
0
 /// <summary>
 ///     Ctor.
 /// </summary>
 /// <param name="left">is a property providing joined-on values</param>
 /// <param name="type">is the type of outer join</param>
 /// <param name="right">is a property providing joined-on values</param>
 public OuterJoinQualifier(
     OuterJoinType type,
     PropertyValueExpression left,
     PropertyValueExpression right)
     :
     this(type, left, right, new List<PropertyValueExpressionPair>())
 {
 }
Beispiel #3
0
 /// <summary>Ctor. </summary>
 /// <param name="outerJoinType">type of the outer join</param>
 /// <param name="optLeftNode">left hand identifier node</param>
 /// <param name="optRightNode">right hand identifier node</param>
 /// <param name="optAddLeftNode">additional optional left hand identifier nodes for the on-clause in a logical-and</param>
 /// <param name="optAddRightNode">additional optional right hand identifier nodes for the on-clause in a logical-and</param>
 public OuterJoinDesc(OuterJoinType outerJoinType, ExprIdentNode optLeftNode, ExprIdentNode optRightNode, ExprIdentNode[] optAddLeftNode, ExprIdentNode[] optAddRightNode)
 {
     OuterJoinType        = outerJoinType;
     OptLeftNode          = optLeftNode;
     OptRightNode         = optRightNode;
     AdditionalLeftNodes  = optAddLeftNode;
     AdditionalRightNodes = optAddRightNode;
 }
Beispiel #4
0
 /// <summary>
 ///     Ctor.
 /// </summary>
 /// <param name="left">is a property providing joined-on values</param>
 /// <param name="type">is the type of outer join</param>
 /// <param name="right">is a property providing joined-on values</param>
 /// <param name="additionalProperties">for any pairs of additional on-clause properties</param>
 public OuterJoinQualifier(
     OuterJoinType type,
     PropertyValueExpression left,
     PropertyValueExpression right,
     List<PropertyValueExpressionPair> additionalProperties)
 {
     this.type = type;
     this.left = left;
     this.right = right;
     this.additionalProperties = additionalProperties;
 }
Beispiel #5
0
        public static String GetText(this OuterJoinType joinType)
        {
            switch (joinType)
            {
            case OuterJoinType.LEFT:
                return("left");

            case OuterJoinType.RIGHT:
                return("right");

            case OuterJoinType.FULL:
                return("full");

            case OuterJoinType.INNER:
                return("inner");

            default:
                throw new ArgumentException("Unknown joinType " + joinType);
            }
        }
Beispiel #6
0
        public static OuterJoinDesc MakeDesc(
            IContainer container,
            string propOne,
            string streamOne,
            string propTwo,
            string streamTwo,
            OuterJoinType type)
        {
            ExprIdentNode identNodeOne = new ExprIdentNodeImpl(propOne, streamOne);
            ExprIdentNode identNodeTwo = new ExprIdentNodeImpl(propTwo, streamTwo);

            var context = SupportExprValidationContextFactory.Make(
                container,
                new SupportStreamTypeSvc3Stream(SupportEventTypeFactory.GetInstance(container)));

            identNodeOne.Validate(context);
            identNodeTwo.Validate(context);
            var desc = new OuterJoinDesc(type, identNodeOne, identNodeTwo, null, null);

            return(desc);
        }
Beispiel #7
0
 /// <summary>Creates qualifier.</summary>
 /// <param name="propertyLeft">is a property name providing joined-on values</param>
 /// <param name="type">is the type of outer join</param>
 /// <param name="propertyRight">is a property name providing joined-on values</param>
 /// <returns>qualifier</returns>
 public static OuterJoinQualifier Create(String propertyLeft, OuterJoinType type, String propertyRight)
 {
     return(new OuterJoinQualifier(type, new PropertyValueExpression(propertyLeft),
                                   new PropertyValueExpression(propertyRight)));
 }
        public static OuterJoinDesc MakeDesc(String propOne, String streamOne, String propTwo, String streamTwo, OuterJoinType type)
        {
            ExprIdentNode identNodeOne = new ExprIdentNodeImpl(propOne, streamOne);
            ExprIdentNode identNodeTwo = new ExprIdentNodeImpl(propTwo, streamTwo);

            ExprValidationContext context = SupportExprValidationContextFactory.Make(new SupportStreamTypeSvc3Stream());

            identNodeOne.Validate(context);
            identNodeTwo.Validate(context);
            OuterJoinDesc desc = new OuterJoinDesc(type, identNodeOne, identNodeTwo, null, null);

            return(desc);
        }
Beispiel #9
0
 public OuterJoinNode(OuterJoinType outerJoinType, FromNode from, Node expression)
     : base(from, expression)
 {
     Id   = CalculateId(this);
     Type = outerJoinType;
 }