Interface Collector<U,D>

Type Parameters:
U - the type of the additional result the collector may provide
D - the type of the objects we want to collect
All Known Implementing Classes:
AbstractCollector, TseitinTransformer

public interface Collector<U,D>
The concept of a collector is similar to its sibling Transformer, we want to transform an AcceptanceCondition into a different structure. A collector is however more flexible since it may provide two different results, one is computed while traversing through the acceptance condition beginning from the root to its leaves and the other one is computed on the way back from the leaves to the root.

This is best illustrated by an example, e.g. TseitinTransformer which transforms an acceptance condition into a set of clauses. It starts top-down by rewriting the root connective while the names of the sub-clauses are computed bottom-up.

To minimize the effort for developers see AbstractCollector.

Author:
Mathias Hofer
  • Method Details

    • collect

      default U collect(AcceptanceCondition acc, Collection<D> collection)
      Traverses through the given AcceptanceCondition and adds all the collected data to the provided collection.
      Parameters:
      acc - the acceptance condition
      collection - the collection which we use to store the collected data
      Returns:
      the result we may compute while collecting data
    • collect

      U collect(AcceptanceCondition acc, Consumer<D> consumer)
      Traverses through the given AcceptanceCondition and calls the provided consumer on all the collected data.
      Parameters:
      acc - the acceptance condition
      consumer - the consumer which is used as a callback for the collected data.
      Returns:
      the result we may compute while collecting data