Skip to content

Commit 3457ffa

Browse files
committed
Added support for subselects
1 parent 5f3c6ef commit 3457ffa

12 files changed

Lines changed: 513 additions & 146 deletions

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,4 +118,4 @@
118118
</plugins>
119119
</build>
120120

121-
</project>
121+
</project>

src/main/java/eu/qwsome/sql/InnerJoin.java renamed to src/main/java/eu/qwsome/sql/InnerTableJoin.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@
77
*
88
* @author Lukáš Kvídera
99
*/
10-
class InnerJoin extends Join {
10+
class InnerTableJoin extends TableJoin {
1111

12-
InnerJoin(final String joinTable, final Condition condition) {
12+
InnerTableJoin(final String joinTable, final Condition condition) {
1313
super(joinTable, condition);
1414
}
1515

1616
@Override
1717
CharSequence getPrefix() {
1818
return "";
1919
}
20-
}
20+
}
Lines changed: 3 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,11 @@
11
package eu.qwsome.sql;
22

33
import eu.qwsome.sql.api.Appendable;
4-
import eu.qwsome.sql.condition.Condition;
54
import eu.qwsome.sql.condition.ValueConstructor;
65

76
/**
8-
* Crate for join attributes.
9-
*
107
* @author Lukáš Kvídera
118
*/
12-
abstract class Join implements Appendable {
13-
14-
/**
15-
* Table used in JOIN clause.
16-
*/
17-
private final String joinTable;
18-
19-
/**
20-
* Condition in ON clause.
21-
*/
22-
private final Condition condition;
23-
24-
Join(final String joinTable, final Condition condition) {
25-
this.joinTable = joinTable;
26-
this.condition = condition;
27-
}
28-
29-
public CharSequence get() {
30-
final StringBuilder builder = new StringBuilder();
31-
appendTo(builder);
32-
return builder;
33-
}
34-
35-
/**
36-
* @return tyoe if join
37-
*/
38-
abstract CharSequence getPrefix();
39-
40-
@Override
41-
public void appendTo(final StringBuilder builder) {
42-
builder.append(getPrefix())
43-
.append(" JOIN ")
44-
.append(this.joinTable)
45-
.append(" ON ");
46-
47-
this.condition.appendTo(builder);
48-
}
49-
50-
/**
51-
* @return variables to be bound in ON clause's conditions
52-
*/
53-
ValueConstructor toValues() {
54-
return this.condition.getValues();
55-
}
56-
57-
/**
58-
* This enum determines type of join.
59-
*/
60-
enum Type {
61-
LEFT,
62-
INNER
63-
}
64-
}
9+
interface Join extends Appendable {
10+
ValueConstructor toValues();
11+
}

src/main/java/eu/qwsome/sql/LeftJoin.java renamed to src/main/java/eu/qwsome/sql/LeftTableJoin.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@
77
*
88
* @author Lukáš Kvídera
99
*/
10-
class LeftJoin extends Join {
10+
class LeftTableJoin extends TableJoin {
1111

12-
LeftJoin(final String joinTable, final Condition condition) {
12+
LeftTableJoin(final String joinTable, final Condition condition) {
1313
super(joinTable, condition);
1414
}
1515

1616
@Override
1717
CharSequence getPrefix() {
1818
return " LEFT";
1919
}
20-
}
20+
}

0 commit comments

Comments
 (0)