View Javadoc
1   package xuml.tools.model.compiler.runtime.query;
2   
3   import xuml.tools.model.compiler.runtime.Entity;
4   
5   public abstract class NumericExpression<T extends Entity<T>> {
6   
7       public NumericExpression<T> plus(NumericExpression<T> e) {
8           return new BinaryNumericExpression<T>(this, BinaryNumericOperator.PLUS, e);
9       }
10  
11      public NumericExpression<T> plus(Number e) {
12          return new BinaryNumericExpression<T>(this, BinaryNumericOperator.PLUS,
13                  new NumericConstant<T>(e));
14      }
15  
16      public NumericExpression<T> minus(NumericExpression<T> e) {
17          return new BinaryNumericExpression<T>(this, BinaryNumericOperator.MINUS, e);
18      }
19  
20      public NumericExpression<T> minus(Number e) {
21          return new BinaryNumericExpression<T>(this, BinaryNumericOperator.MINUS,
22                  new NumericConstant<T>(e));
23      }
24  
25      public NumericExpression<T> times(NumericExpression<T> e) {
26          return new BinaryNumericExpression<T>(this, BinaryNumericOperator.TIMES, e);
27      }
28  
29      public NumericExpression<T> times(Number e) {
30          return new BinaryNumericExpression<T>(this, BinaryNumericOperator.TIMES,
31                  new NumericConstant<T>(e));
32      }
33  
34      public NumericExpression<T> divide(NumericExpression<T> e) {
35          return new BinaryNumericExpression<T>(this, BinaryNumericOperator.DIVIDE, e);
36      }
37  
38      public NumericExpression<T> divide(Number e) {
39          return new BinaryNumericExpression<T>(this, BinaryNumericOperator.DIVIDE,
40                  new NumericConstant<T>(e));
41      }
42  
43      public BooleanExpression<T> eq(NumericExpression<T> e) {
44          return new NumericComparison<T>(this, NumericComparisonOperator.EQ, e);
45      }
46  
47      public BooleanExpression<T> eq(Number e) {
48          return new NumericComparison<T>(this, NumericComparisonOperator.EQ,
49                  new NumericConstant<T>(e));
50      }
51  
52      public BooleanExpression<T> neq(NumericExpression<T> e) {
53          return new NumericComparison<T>(this, NumericComparisonOperator.NEQ, e);
54      }
55  
56      public BooleanExpression<T> neq(Number e) {
57          return new NumericComparison<T>(this, NumericComparisonOperator.NEQ,
58                  new NumericConstant<T>(e));
59      }
60  
61      public BooleanExpression<T> gt(NumericExpression<T> e) {
62          return new NumericComparison<T>(this, NumericComparisonOperator.GT, e);
63      }
64  
65      public BooleanExpression<T> gt(Number e) {
66          return new NumericComparison<T>(this, NumericComparisonOperator.GT,
67                  new NumericConstant<T>(e));
68      }
69  
70      public BooleanExpression<T> gte(NumericExpression<T> e) {
71          return new NumericComparison<T>(this, NumericComparisonOperator.GTE, e);
72      }
73  
74      public BooleanExpression<T> gte(Number e) {
75          return new NumericComparison<T>(this, NumericComparisonOperator.GTE,
76                  new NumericConstant<T>(e));
77      }
78  
79      public BooleanExpression<T> lt(NumericExpression<T> e) {
80          return new NumericComparison<T>(this, NumericComparisonOperator.LT, e);
81      }
82  
83      public BooleanExpression<T> lt(Number e) {
84          return new NumericComparison<T>(this, NumericComparisonOperator.LT,
85                  new NumericConstant<T>(e));
86      }
87  
88      public BooleanExpression<T> lte(NumericExpression<T> e) {
89          return new NumericComparison<T>(this, NumericComparisonOperator.LTE, e);
90      }
91  
92      public BooleanExpression<T> lte(Number e) {
93          return new NumericComparison<T>(this, NumericComparisonOperator.LTE,
94                  new NumericConstant<T>(e));
95      }
96  }