Class DefaultIoFilterChain

    • Constructor Detail

      • DefaultIoFilterChain

        public DefaultIoFilterChain​(AbstractIoSession session)
        Create a new default chain, associated with a session. It will only contain a HeadFilter and a TailFilter.
        Parameters:
        session - The session associated with the created filter chain
    • Method Detail

      • getEntry

        public IoFilterChain.Entry getEntry​(Class<? extends IoFilter> filterType)
        Returns the IoFilterChain.Entry with the specified filterType in this chain. If there's more than one filter with the specified type, the first match will be chosen.
        Specified by:
        getEntry in interface IoFilterChain
        Parameters:
        filterType - The filter class we are looking for
        Returns:
        null if there's no such name in this chain
      • get

        public IoFilter get​(String name)
        Returns the IoFilter with the specified name in this chain.
        Specified by:
        get in interface IoFilterChain
        Parameters:
        name - the filter's name
        Returns:
        null if there's no such name in this chain
      • get

        public IoFilter get​(Class<? extends IoFilter> filterType)
        Returns the IoFilter with the specified filterType in this chain. If there's more than one filter with the specified type, the first match will be chosen.
        Specified by:
        get in interface IoFilterChain
        Parameters:
        filterType - The filter class
        Returns:
        null if there's no such name in this chain
      • getNextFilter

        public IoFilter.NextFilter getNextFilter​(Class<? extends IoFilter> filterType)
        Returns the IoFilter.NextFilter of the specified filterType in this chain. If there's more than one filter with the specified type, the first match will be chosen.
        Specified by:
        getNextFilter in interface IoFilterChain
        Parameters:
        filterType - The Filter class for which we want the next filter
        Returns:
        null if there's no such name in this chain
      • addFirst

        public void addFirst​(String name,
                             IoFilter filter)
        Adds the specified filter with the specified name at the beginning of this chain.
        Specified by:
        addFirst in interface IoFilterChain
        Parameters:
        name - The filter's name
        filter - The filter to add
      • addLast

        public void addLast​(String name,
                            IoFilter filter)
        Adds the specified filter with the specified name at the end of this chain.
        Specified by:
        addLast in interface IoFilterChain
        Parameters:
        name - The filter's name
        filter - The filter to add
      • addBefore

        public void addBefore​(String baseName,
                              String name,
                              IoFilter filter)
        Adds the specified filter with the specified name just before the filter whose name is baseName in this chain.
        Specified by:
        addBefore in interface IoFilterChain
        Parameters:
        baseName - The targeted Filter's name
        name - The filter's name
        filter - The filter to add
      • addAfter

        public void addAfter​(String baseName,
                             String name,
                             IoFilter filter)
        Adds the specified filter with the specified name just after the filter whose name is baseName in this chain.
        Specified by:
        addAfter in interface IoFilterChain
        Parameters:
        baseName - The targeted Filter's name
        name - The filter's name
        filter - The filter to add
      • remove

        public IoFilter remove​(String name)
        Removes the filter with the specified name from this chain.
        Specified by:
        remove in interface IoFilterChain
        Parameters:
        name - The name of the filter to remove
        Returns:
        The removed filter
      • remove

        public void remove​(IoFilter filter)
        Replace the filter with the specified name with the specified new filter.
        Specified by:
        remove in interface IoFilterChain
        Parameters:
        filter - The filter to remove
      • remove

        public IoFilter remove​(Class<? extends IoFilter> filterType)
        Replace the filter of the specified type with the specified new filter. If there's more than one filter with the specified type, the first match will be replaced.
        Specified by:
        remove in interface IoFilterChain
        Parameters:
        filterType - The filter class to remove
        Returns:
        The removed filter
      • replace

        public IoFilter replace​(String name,
                                IoFilter newFilter)
        Replace the filter with the specified name with the specified new filter.
        Specified by:
        replace in interface IoFilterChain
        Parameters:
        name - The name of the filter we want to replace
        newFilter - The new filter
        Returns:
        the old filter
      • replace

        public void replace​(IoFilter oldFilter,
                            IoFilter newFilter)
        Replace the filter with the specified name with the specified new filter.
        Specified by:
        replace in interface IoFilterChain
        Parameters:
        oldFilter - The filter we want to replace
        newFilter - The new filter
      • replace

        public IoFilter replace​(Class<? extends IoFilter> oldFilterType,
                                IoFilter newFilter)
        Replace the filter of the specified type with the specified new filter. If there's more than one filter with the specified type, the first match will be replaced.
        Specified by:
        replace in interface IoFilterChain
        Parameters:
        oldFilterType - The filter class we want to replace
        newFilter - The new filter
        Returns:
        The replaced IoFilter
      • clear

        public void clear()
                   throws Exception
        Removes all filters added to this chain.
        Specified by:
        clear in interface IoFilterChain
        Throws:
        Exception - If we weren't able to clear the filters
      • fireFilterWrite

        public void fireFilterWrite​(WriteRequest writeRequest)
        Fires a IoSession.write(Object) event. Most users don't need to call this method at all. Please use this method only when you implement a new transport or fire a virtual event.
        Specified by:
        fireFilterWrite in interface IoFilterChain
        Parameters:
        writeRequest - The message to write
      • contains

        public boolean contains​(String name)
        Specified by:
        contains in interface IoFilterChain
        Parameters:
        name - The filter's name we are looking for
        Returns:
        true if this chain contains an IoFilter with the specified name.
      • contains

        public boolean contains​(IoFilter filter)
        Specified by:
        contains in interface IoFilterChain
        Parameters:
        filter - The filter we are looking for
        Returns:
        true if this chain contains the specified filter.
      • contains

        public boolean contains​(Class<? extends IoFilter> filterType)
        Specified by:
        contains in interface IoFilterChain
        Parameters:
        filterType - The filter's class we are looking for
        Returns:
        true if this chain contains an IoFilter of the specified filterType.