Class 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: 2019-03-12 08:29:06 +0100 (tis, 12 mars 2019) $
    • Field Detail

      • hasBeenAnnotatated

        private boolean hasBeenAnnotatated
    • Constructor Detail

      • HasAnnotationRestriction

        @Deprecated
        public HasAnnotationRestriction​(String alias,
                                        AnnotationType annotationType,
                                        boolean hasBeenAnnotatated,
                                        boolean includePrimary,
                                        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
        includePrimary - If items with this annotation as a primary annotation should be returned by the query or not
        includeInheriting - If items inherting the annotation should be returned by the query or not
        Since:
        3.5
      • HasAnnotationRestriction

        public HasAnnotationRestriction​(String alias,
                                        AnnotationType annotationType,
                                        boolean hasBeenAnnotatated,
                                        AnnotationRestriction.Options options)
        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
        options - Options that specify which annotations to consider when searching
        Since:
        3.11
    • 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(NativeQuery)
      • 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