Interface Walker


  • public interface Walker
    Objects that can walk over a filter expression, showing each element to a visitor.

    Walker implementations are not guaranteed to be thread-safe. In particular, it is not possible to use the same Walker instance with more than one thread if the visitor has return values. Walker implementations can be re-used once the previous walk has been completed.

    You should use FilterUtils.visitFilter to apply a visitor to a feature filter. You can use WalkerFactory.getInstance().getWalker(visitor) to get a walker that is suitable for your visitor implementation. This will take care of all the magic needed to hook up visitor call-back methods to the walkers traversal of the features. If you don't like the walkers that WalkerFactory produces, you can implement this directly. This will work fine for simple visitors, e.g., which only have a single method for visting all filters, regardless of type.
    Author:
    Matthew Pocock
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      Object getValue()
      If the visitor has a return value, then the result of applying the visitor to the tree can be obtained using this method, otherwise the result will be null.
      void walk​(Object filter, Visitor visitor)
      This walks the feature tree, showing the visitor each filter in the expression.
    • Method Detail

      • walk

        void walk​(Object filter,
                  Visitor visitor)
        This walks the feature tree, showing the visitor each filter in the expression.
        Parameters:
        filter -
        visitor -
      • getValue

        Object getValue()
        If the visitor has a return value, then the result of applying the visitor to the tree can be obtained using this method, otherwise the result will be null.
        Returns:
        the visitor's return value, or null