2.17.2: 2011-06-17

net.sf.basedb.core
Class HasAnnotationRestriction

java.lang.Object
  extended by net.sf.basedb.core.AnnotationRestriction
      extended by net.sf.basedb.core.HasAnnotationRestriction
All Implemented Interfaces:
QueryElement, Restriction

public class HasAnnotationRestriction
extends AnnotationRestriction

Restricts a query by the presence of absence of an annotation.

Version:
2.7
Author:
Nicklas
See Also:
Annotations
Last modified
$Date: 2010-04-21 11:48:29 +0200 (Wed, 21 Apr 2010) $

Field Summary
private  boolean hasBeenAnnotatated
           
 
Fields inherited from class net.sf.basedb.core.AnnotationRestriction
alias, annotationTypeId, includeInheriting, valueType
 
Constructor Summary
HasAnnotationRestriction(String alias, AnnotationType annotationType, boolean hasBeenAnnotatated, boolean includeInheriting)
          Create a new restriction that checks if an item has been annotatated or not.
HasAnnotationRestriction(String alias, int annotationTypeId, boolean hasBeenAnnotatated, boolean includeInheriting)
           
 
Method Summary
 boolean equals(Object other)
          This restriction is equal to another HasAnnotationRestriction if they have the same annotation type, inheritance setting and annotation check.
(package private)  String getRestrictionSql(Query query, DbControl dc)
          Get an SQL fragment that includes the actual restriction.
 int hashCode()
           
(package private)  boolean notAmongSelected()
          If the main restriction should match items that had annotations among the selected annotation sets, or not.
(package private)  void setRestrictionParameters(org.hibernate.SQLQuery query)
          Set the value for all parameters defined in the SQL fragment returned by AnnotationRestriction.getRestrictionSql(Query, DbControl).
 
Methods inherited from class net.sf.basedb.core.AnnotationRestriction
getChildren, maybeEquals, toQl
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

hasBeenAnnotatated

private boolean hasBeenAnnotatated
Constructor Detail

HasAnnotationRestriction

public HasAnnotationRestriction(String alias,
                                AnnotationType annotationType,
                                boolean hasBeenAnnotatated,
                                boolean includeInheriting)
Create a new restriction that checks if an item has been annotatated or not.

Parameters:
alias - The alias of a joined item where the annotations are located or null to use the root entity of the query
annotationType - The annotation type to use in the query
hasBeenAnnotatated - TRUE to look for items that has been annotated with the given annotation type, FALSE to look for items that hasn't
includeInheriting - If items inherting the annotation should be returned by the query or not

HasAnnotationRestriction

public HasAnnotationRestriction(String alias,
                                int annotationTypeId,
                                boolean hasBeenAnnotatated,
                                boolean includeInheriting)
See Also:
HasAnnotationRestriction(String, AnnotationType, boolean, boolean)
Method Detail

getRestrictionSql

String getRestrictionSql(Query query,
                         DbControl dc)
                   throws BaseException
Description copied from class: AnnotationRestriction
Get an SQL fragment that includes the actual restriction. Use 'v.value' to access the annotation value. Avoid including literal values originating from a user, especially strings, since it may lead to security holes unless the values are checked for dangerous characters. Use a parameter placeholder instead. A parameter placeholder is a colon (:) followed by a name. Example:
v.value = :theValue

                The setRestrictionParameters method is called to 
                allow the subclass to set the value of the parameters specified
                in the SQL fragment.

Specified by:
getRestrictionSql in class AnnotationRestriction
Parameters:
query - The query object we are about to execute
Returns:
An SQL fragment, or null if no additional restriction is required
Throws:
BaseException
See Also:
AnnotationRestriction.setRestrictionParameters(SQLQuery)

setRestrictionParameters

void setRestrictionParameters(org.hibernate.SQLQuery query)
Description copied from class: AnnotationRestriction
Set the value for all parameters defined in the SQL fragment returned by AnnotationRestriction.getRestrictionSql(Query, DbControl).

Specified by:
setRestrictionParameters in class AnnotationRestriction
Parameters:
query - The Hibernate SQLQuery object which is used to query the database

notAmongSelected

boolean notAmongSelected()
Description copied from class: AnnotationRestriction
If the main restriction should match items that had annotations among the selected annotation sets, or not.

Overrides:
notAmongSelected in class AnnotationRestriction
Returns:
FALSE (default) to match the selected annotation sets, TRUE to match the non-selected annotation sets

equals

public boolean equals(Object other)
This restriction is equal to another HasAnnotationRestriction if they have the same annotation type, inheritance setting and annotation check.

Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class AnnotationRestriction

2.17.2: 2011-06-17