Class SearchRequestDecorator

    • Constructor Detail

    • Method Detail

      • setTlvId

        public void setTlvId​(int tlvId)
        Set the SearchRequest PDU TLV's Id
        Parameters:
        tlvId - The TLV id
      • getCodecFilter

        public Filter getCodecFilter()
        Gets the search filter associated with this search request.
        Returns:
        the expression node for the root of the filter expression tree.
      • getTerminalFilter

        public Filter getTerminalFilter()
        Get the terminal filter
        Returns:
        Returns the terminal filter.
      • setTerminalFilter

        public void setTerminalFilter​(Filter terminalFilter)
        Set the terminal filter
        Parameters:
        terminalFilter - the teminalFilter.
      • setFilter

        public SearchRequest setFilter​(ExprNode filter)
        Sets the search filter associated with this search request.
        Specified by:
        setFilter in interface SearchRequest
        Parameters:
        filter - the expression node for the root of the filter expression tree.
        Returns:
        The SearchRequest instance
      • setCurrentFilter

        public void setCurrentFilter​(Filter filter)
        Set the current filter
        Parameters:
        filter - The filter to set.
      • addCurrentFilter

        public void addCurrentFilter​(Filter localFilter)
                              throws DecoderException
        Add a current filter. We have two cases : - there is no previous current filter : the filter is the top level filter - there is a previous current filter : the filter is added to the currentFilter set, and the current filter is changed In any case, the previous current filter will always be a ConnectorFilter when this method is called.
        Parameters:
        localFilter - The filter to set.
        Throws:
        DecoderException - If the filter is invalid
      • unstackFilters

        public void unstackFilters​(Asn1Container container)
        This method is used to clear the filter's stack for terminated elements. An element is considered as terminated either if : - it's a final element (ie an element which cannot contains a Filter) - its current length equals its expected length.
        Parameters:
        container - The container being decoded
      • getBase

        public Dn getBase()
        Gets the search base as a distinguished name.
        Specified by:
        getBase in interface SearchRequest
        Returns:
        the search base
      • setBase

        public SearchRequest setBase​(Dn baseDn)
        Sets the search base as a distinguished name.
        Specified by:
        setBase in interface SearchRequest
        Parameters:
        baseDn - the search base
        Returns:
        The SearchRequest instance
      • getSizeLimit

        public long getSizeLimit()
        A sizelimit that restricts the maximum number of entries to be returned as a result of the search. A value of 0 in this field indicates that no client-requested sizelimit restrictions are in effect for the search. Servers may enforce a maximum number of entries to return.
        Specified by:
        getSizeLimit in interface SearchRequest
        Returns:
        search size limit.
      • setSizeLimit

        public SearchRequest setSizeLimit​(long entriesMax)
        Sets sizelimit that restricts the maximum number of entries to be returned as a result of the search. A value of 0 in this field indicates that no client-requested sizelimit restrictions are in effect for the search. Servers may enforce a maximum number of entries to return.
        Specified by:
        setSizeLimit in interface SearchRequest
        Parameters:
        entriesMax - maximum search result entries to return.
        Returns:
        The SearchRequest instance
      • getTimeLimit

        public int getTimeLimit()
        Gets the timelimit that restricts the maximum time (in seconds) allowed for a search. A value of 0 in this field indicates that no client- requested timelimit restrictions are in effect for the search.
        Specified by:
        getTimeLimit in interface SearchRequest
        Returns:
        the search time limit in seconds.
      • setTimeLimit

        public SearchRequest setTimeLimit​(int secondsMax)
        Sets the timelimit that restricts the maximum time (in seconds) allowed for a search. A value of 0 in this field indicates that no client- requested timelimit restrictions are in effect for the search.
        Specified by:
        setTimeLimit in interface SearchRequest
        Parameters:
        secondsMax - the search time limit in seconds.
        Returns:
        The SearchRequest instance
      • getTypesOnly

        public boolean getTypesOnly()
        An indicator as to whether search results will contain both attribute types and values, or just attribute types. Setting this field to TRUE causes only attribute types (no values) to be returned. Setting this field to FALSE causes both attribute types and values to be returned.
        Specified by:
        getTypesOnly in interface SearchRequest
        Returns:
        true for only types, false for types and values.
      • setTypesOnly

        public SearchRequest setTypesOnly​(boolean typesOnly)
        An indicator as to whether search results will contain both attribute types and values, or just attribute types. Setting this field to TRUE causes only attribute types (no values) to be returned. Setting this field to FALSE causes both attribute types and values to be returned.
        Specified by:
        setTypesOnly in interface SearchRequest
        Parameters:
        typesOnly - true for only types, false for types and values.
        Returns:
        The SearchRequest instance
      • getFilter

        public ExprNode getFilter()
        Gets the search filter associated with this search request.
        Specified by:
        getFilter in interface SearchRequest
        Returns:
        the expression node for the root of the filter expression tree.
      • getAttributes

        public List<StringgetAttributes()
        Gets a list of the attributes to be returned from each entry which matches the search filter. There are two special values which may be used: an empty list with no attributes, and the attribute description string "*". Both of these signify that all user attributes are to be returned. (The "*" allows the client to request all user attributes in addition to specific operational attributes). Attributes MUST be named at most once in the list, and are returned at most once in an entry. If there are attribute descriptions in the list which are not recognized, they are ignored by the server. If the client does not want any attributes returned, it can specify a list containing only the attribute with OID "1.1". This OID was chosen arbitrarily and does not correspond to any attribute in use. Client implementors should note that even if all user attributes are requested, some attributes of the entry may not be included in search results due to access control or other restrictions. Furthermore, servers will not return operational attributes, such as objectClasses or attributeTypes, unless they are listed by name, since there may be extremely large number of values for certain operational attributes.
        Specified by:
        getAttributes in interface SearchRequest
        Returns:
        the attributes to return for this request
      • addAttributes

        public SearchRequest addAttributes​(String... attributes)
        Adds some attributes to the set of entry attributes to return.
        Specified by:
        addAttributes in interface SearchRequest
        Parameters:
        attributes - the attributes description or identifier.
        Returns:
        The SearchRequest instance
      • computeLength

        public int computeLength()
        Compute the SearchRequest length
        SearchRequest :
         0x63 L1
          |
          +--> 0x04 L2 baseObject
          +--> 0x0A 0x01 scope
          +--> 0x0A 0x01 derefAliases
          +--> 0x02 0x0(1..4) sizeLimit
          +--> 0x02 0x0(1..4) timeLimit
          +--> 0x01 0x01 typesOnly
          +--> filter.computeLength()
          +--> 0x30 L3 (Attribute description list)
                |
                +--> 0x04 L4-1 Attribute description
                +--> 0x04 L4-2 Attribute description
                +--> ...
                +--> 0x04 L4-i Attribute description
                +--> ...
                +--> 0x04 L4-n Attribute description
         
        Specified by:
        computeLength in interface Asn1Object
        Returns:
        The object's computed length
      • encode

        public ByteBuffer encode​(ByteBuffer buffer)
                          throws EncoderException
        Encode the SearchRequest message to a PDU.
        SearchRequest :
         0x63 LL
           0x04 LL baseObject
           0x0A 01 scope
           0x0A 01 derefAliases
           0x02 0N sizeLimit
           0x02 0N timeLimit
           0x01 0x01 typesOnly
           filter.encode()
           0x30 LL attributeDescriptionList
             0x04 LL attributeDescription
             ...
             0x04 LL attributeDescription
         
        Specified by:
        encode in interface Asn1Object
        Parameters:
        buffer - The buffer where to put the PDU
        Returns:
        The PDU.
        Throws:
        EncoderException - if the buffer can't be encoded
      • hasResponse

        public boolean hasResponse()
        Tests to see if this Request produces one or more response types.
        Specified by:
        hasResponse in interface Request
        Returns:
        true if a response can be expected, false otherwise.
      • isAbandoned

        public boolean isAbandoned()
        Checks to see if this request has been abandoned.
        Specified by:
        isAbandoned in interface AbandonableRequest
        Returns:
        true if the request has been abandoned.
      • isFollowReferrals

        public boolean isFollowReferrals()
        Tells the client if it should follow referrals instead of throwing exceptions
        Specified by:
        isFollowReferrals in interface SearchRequest
        Returns:
        true if we should follow the referrals
      • isIgnoreReferrals

        public boolean isIgnoreReferrals()
        Tells the client if it should ignore referrals instead of throwing exceptions
        Specified by:
        isIgnoreReferrals in interface SearchRequest
        Returns:
        true if we should ignore the referrals
      • ignoreReferrals

        public SearchRequest ignoreReferrals()
        Tells the client to ignore referrals instead of throwing exceptions. The entry will contain the referral attributeType with the link.
        Specified by:
        ignoreReferrals in interface SearchRequest
        Returns:
        The SearchRequest instance