EMMA Coverage Report (generated Mon Apr 21 23:56:41 GMT 2008)
[all classes][org.sqlorm.querybuilder]

COVERAGE SUMMARY FOR SOURCE FILE [MultiJoinOnExpr.java]

nameclass, %method, %block, %line, %
MultiJoinOnExpr.java100% (3/3)90%  (9/10)90%  (208/231)97%  (33,8/35)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class MultiJoinOnExpr100% (1/1)100% (5/5)89%  (110/123)97%  (32/33)
MultiJoinOnExpr (MultiJoinOnExpr$JoinType, String): void 100% (1/1)100% (20/20)100% (6/6)
MultiJoinOnExpr (MultiJoinOnExpr$JoinType, String, String): void 100% (1/1)100% (21/21)100% (6/6)
equals (Object): boolean 100% (1/1)100% (12/12)100% (3/3)
on (): ItfAndOrList 100% (1/1)100% (3/3)100% (1/1)
toSql (StringBuilder, String): void 100% (1/1)81%  (54/67)94%  (17/18)
     
class MultiJoinOnExpr$1100% (1/1)100% (1/1)88%  (35/40)87%  (0,9/1)
<static initializer> 100% (1/1)88%  (35/40)87%  (0,9/1)
     
class MultiJoinOnExpr$JoinType100% (1/1)75%  (3/4)93%  (63/68)96%  (1,9/2)
<static initializer> 100% (1/1)100% (54/54)100% (2/2)
MultiJoinOnExpr$JoinType (String, int): void 100% (1/1)100% (5/5)100% (1/1)
valueOf (String): MultiJoinOnExpr$JoinType 0%   (0/1)0%   (0/5)0%   (0/1)
values (): MultiJoinOnExpr$JoinType [] 100% (1/1)100% (4/4)100% (1/1)

1package org.sqlorm.querybuilder;
2 
3/**
4 * Internal helper class for query generation. Generic class to represent inner joins, outer joins, cross joins, left
5 * joins, right joins, ...
6 * 
7 * @author kasper graversen
8 */
9public class MultiJoinOnExpr implements IPositionSelectFrom {
10enum JoinType {
11INNER_JOIN, OUTER_JOIN, CROSS_JOIN, LEFT_JOIN, RIGHT_JOIN
12}
13 
14TableIdentifierExpr table;
15AndOrList constraints = new AndOrList();
16 
17JoinType joinType;;
18 
19MultiJoinOnExpr(final JoinType joinType, final String table) {
20        this.joinType = joinType;
21        this.table = new TableIdentifierExpr(table);
22        constraints.internal_setIsOutermostList();
23}
24 
25MultiJoinOnExpr(final JoinType joinType, final String table, final String alias) {
26        this.joinType = joinType;
27        this.table = new TableIdentifierExpr(table, alias);
28        constraints.internal_setIsOutermostList();
29}
30 
31@Override
32public boolean equals(final Object other) {
33        if(other instanceof MultiJoinOnExpr == false) {
34                return false;
35        }
36        return table.equals(((MultiJoinOnExpr) other).table);
37}
38 
39public ItfAndOrList on() {
40        return constraints;
41}
42 
43public void toSql(final StringBuilder sb, final String indent) {
44        sb.append("\n");
45        sb.append(indent);
46 
47        switch(joinType) {
48                case INNER_JOIN:
49                sb.append("INNER JOIN ");
50                break;
51                case CROSS_JOIN:
52                sb.append("CROSS JOIN");
53                break;
54                case LEFT_JOIN:
55                sb.append("LEFT JOIN");
56                break;
57                case RIGHT_JOIN:
58                sb.append("RIGHT JOIN");
59                break;
60                case OUTER_JOIN:
61                sb.append("OUTER JOIN");
62                break;
63                default:
64                throw new IllegalStateException("Cannot generate sql for join type " + joinType);
65        }
66        table.toSql(sb, indent);
67        sb.append(" ON ");
68        constraints.toSql(sb, indent);
69}
70 
71}

[all classes][org.sqlorm.querybuilder]
EMMA 2.0.5312 (C) Vladimir Roubtsov