Package com.mckoi.database
Class JoiningSet
java.lang.Object
com.mckoi.database.JoiningSet
- All Implemented Interfaces:
Serializable
,Cloneable
Used in TableSet to describe how we naturally join the tables together.
This is used when the TableSet has evaluated the search condition and it
is required for any straggling tables to be naturally joined. In SQL,
these joining types are specified in the FROM clause.
For example,
FROM table_a LEFT OUTER JOIN table_b ON ( table_a.id = table_b.id ), ...
A ',' should donate an INNER_JOIN in an SQL FROM clause.
- Author:
- Tobias Downer
- See Also:
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
static final int
Statics for Join Types.static final int
static final int
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addJoin
(int type) Adds a joining type to the set with no 'on' expression.void
addJoin
(int type, Expression on_expression) Adds a joining type to the set, and an 'on' expression.void
addPreviousJoin
(int type, Expression on_expression) Hack, add a joining type to the previous entry from the end.void
Adds a new table into the set being joined.clone()
Performs a deep clone on this object.Returns the first table in the join set.int
getJoinType
(int n) Returns the type of join after table 'n' in the set.getOnExpression
(int n) Returns the ON Expression for the type of join after table 'n' in the set.getTable
(int n) Returns table 'n' in the result set where table 0 is the first table in the join set.int
Returns the number of tables that are in this set.void
prepare
(DatabaseConnection connection) Resolves the schema of tables in this joining set.
-
Field Details
-
INNER_JOIN
public static final int INNER_JOINStatics for Join Types.- See Also:
-
LEFT_OUTER_JOIN
public static final int LEFT_OUTER_JOIN- See Also:
-
RIGHT_OUTER_JOIN
public static final int RIGHT_OUTER_JOIN- See Also:
-
FULL_OUTER_JOIN
public static final int FULL_OUTER_JOIN- See Also:
-
-
Constructor Details
-
JoiningSet
public JoiningSet()Constructs the JoiningSet.
-
-
Method Details
-
prepare
Resolves the schema of tables in this joining set. This runs through each table in the joining set and if the schema has not been set for the table then it attempts to resolve it against the given DatabaseConnection object. This would typically be called in the preparation of a statement. -
addTable
Adds a new table into the set being joined. The table name should be the unique name that distinguishes this table in the TableSet. -
addPreviousJoin
Hack, add a joining type to the previous entry from the end. This is an artifact of how joins are parsed. -
addJoin
Adds a joining type to the set, and an 'on' expression. -
addJoin
public void addJoin(int type) Adds a joining type to the set with no 'on' expression. -
getTableCount
public int getTableCount()Returns the number of tables that are in this set. -
getFirstTable
Returns the first table in the join set. -
getTable
Returns table 'n' in the result set where table 0 is the first table in the join set. -
getJoinType
public int getJoinType(int n) Returns the type of join after table 'n' in the set. An example of using this;String table1 = joins.getFirstTable(); for (int i = 0; i < joins.getTableCount() - 1; ++i) { int type = joins.getJoinType(i); String table2 = getTable(i + 1); // ... Join table1 and table2 ... table1 = table2; }
-
getOnExpression
Returns the ON Expression for the type of join after table 'n' in the set. -
clone
Performs a deep clone on this object.- Overrides:
clone
in classObject
- Throws:
CloneNotSupportedException
-