Package net.sf.basedb.core.query
Class AnyToAnyRestriction
- java.lang.Object
-
- net.sf.basedb.core.query.AnyToAnyRestriction
-
- All Implemented Interfaces:
QueryElement
,Restriction
public class AnyToAnyRestriction extends Object implements Restriction
Expression that can be used to filter on the existence or non-existence of a named any-to-any link.- Since:
- 3.6
- Author:
- nicklas
-
-
Field Summary
Fields Modifier and Type Field Description private String
alias
private boolean
hasLink
private EntityQuery
linkedQuery
private Restriction
linkedRestriction
private Item
linkedTo
private String
linkName
private String
parameterName
-
Constructor Summary
Constructors Modifier Constructor Description private
AnyToAnyRestriction(String alias, String linkName, Item linkedTo, boolean hasLink, EntityQuery linkedQuery)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object other)
This expression is equal to another AnyToAnyRestriction if their named link, 'hasLink' and subquery restriction are the same.static AnyToAnyRestriction
exists(String alias, String linkName, Item linkedTo, EntityQuery linkedQuery)
Create a restriction that restrict a query to return items that has a linked item with the given link name.Collection<? extends QueryElement>
getChildren()
Get the children of this query element or null if it has no children.int
hashCode()
static AnyToAnyRestriction
missing(String alias, String linkName, Item linkedTo, EntityQuery linkedQuery)
Create a restriction that restrict a query to return items that is missing a linked item with the given link name.String
toQl(Query query, DbControl dc)
Create a query language string of the query element.String
toString()
-
-
-
Field Detail
-
alias
private final String alias
-
linkName
private final String linkName
-
linkedTo
private final Item linkedTo
-
hasLink
private final boolean hasLink
-
linkedQuery
private final EntityQuery linkedQuery
-
linkedRestriction
private final Restriction linkedRestriction
-
parameterName
private String parameterName
-
-
Constructor Detail
-
AnyToAnyRestriction
private AnyToAnyRestriction(String alias, String linkName, Item linkedTo, boolean hasLink, EntityQuery linkedQuery)
-
-
Method Detail
-
exists
public static AnyToAnyRestriction exists(String alias, String linkName, Item linkedTo, EntityQuery linkedQuery)
Create a restriction that restrict a query to return items that has a linked item with the given link name.- Parameters:
alias
- Alias to resolve the link against, use null to resolve the link agains the root entitylinkName
- The name of the link (required)linkedTo
- The type of the linked item (optional)linkedQuery
- An optional query that the linked items must match
-
missing
public static AnyToAnyRestriction missing(String alias, String linkName, Item linkedTo, EntityQuery linkedQuery)
Create a restriction that restrict a query to return items that is missing a linked item with the given link name.- Parameters:
alias
- Alias to resolve the link against, use null to resolve the link agains the root entitylinkName
- The name of the link (required)linkedTo
- The type of the linked item (optional)linkedQuery
- An optional query that the linked items must not match
-
toQl
public String toQl(Query query, DbControl dc)
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
-
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:
- A collection or null
-
equals
public boolean equals(Object other)
This expression is equal to another AnyToAnyRestriction if their named link, 'hasLink' and subquery restriction are the same.
-
-