Package net.sf.basedb.core
Class ExtraValueJoin
- java.lang.Object
-
- net.sf.basedb.core.ExtraValueJoin
-
- All Implemented Interfaces:
Join
,QueryElement
class ExtraValueJoin extends Object implements Join
Represents a join to an extra value in a dynamic query:leftTable JOIN extraValueTable ON ...
This class is used by, for example,
DynamicSpotQuery.joinExtraValue(ExtraValue, JoinType)
to create theJoin
query element that is needed. After the extra value has been join it can be used in expressions in the query.- Version:
- 2.0
- Author:
- Nicklas
- See Also:
ExtraValueExpression
,Dynamic.extraValue(ExtraValue)
- Last modified
- $Date: 2012-09-14 09:28:35 +0200 (fr, 14 sep 2012) $
-
-
Field Summary
Fields Modifier and Type Field Description private VirtualColumn[]
columns
private ExtraValue
extraValue
private JoinType
joinType
private VirtualTable
left
private VirtualTable
right
private VirtualDb
vdb
-
Constructor Summary
Constructors Constructor Description ExtraValueJoin(ExtraValue extraValue, JoinType joinType)
Create a new join using the root entity table as the left table.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object other)
This join is equal to another ExtraValueJoin if they join to the same extra value with the same join type.Collection<? extends QueryElement>
getChildren()
Get the children of this query element or null if it has no children.String
getThetaJoin(Query query, DbControl dc)
String
getThetaJoinCondition(Query query, DbControl dc)
int
hashCode()
String
toQl(Query query, DbControl dc)
Create a query language string of the query element.String
toString()
-
-
-
Field Detail
-
extraValue
private final ExtraValue extraValue
-
vdb
private final VirtualDb vdb
-
joinType
private final JoinType joinType
-
left
private final VirtualTable left
-
right
private final VirtualTable right
-
columns
private final VirtualColumn[] columns
-
-
Constructor Detail
-
ExtraValueJoin
ExtraValueJoin(ExtraValue extraValue, JoinType joinType)
Create a new join using the root entity table as the left table.SELECT ... FROM rootTable JOIN extraValueTable
.The extra value table and which columns should be used in the join is found by examining the extra value properties, ie. value type and coordinate type.
- Parameters:
extraValue
- The extra value to joinjoinType
- The type of join
-
-
Method Detail
-
toQl
public String toQl(Query query, DbControl dc) throws BaseException
Description copied from interface:QueryElement
Create a query language string of the query element. Use theQuery.getQueryType()
method to find out which query language is wanted in case the element requires different syntax for different languages.- Specified by:
toQl
in interfaceQueryElement
- Parameters:
query
- The query that is about to be executeddc
- TheDbControl
object used to execute the query- Throws:
BaseException
- If there is any other error
-
getChildren
public Collection<? extends QueryElement> getChildren()
Description copied from interface:QueryElement
Get the children of this query element or null if it has no children. For example theAddExpression
has two children, the expression beeing added.- Specified by:
getChildren
in interfaceQueryElement
- Returns:
- Always null
-
getThetaJoin
public String getThetaJoin(Query query, DbControl dc) throws BaseException
- Specified by:
getThetaJoin
in interfaceJoin
- Throws:
BaseException
-
getThetaJoinCondition
public String getThetaJoinCondition(Query query, DbControl dc) throws BaseException
- Specified by:
getThetaJoinCondition
in interfaceJoin
- Throws:
BaseException
-
equals
public boolean equals(Object other)
This join is equal to another ExtraValueJoin if they join to the same extra value with the same join type.
-
-