Class AtomicPatternBuilder

java.lang.Object
fr.inria.rules.integraal.model.data.readable.query.AtomicPatternBuilder

public class AtomicPatternBuilder extends Object
Builder class for constructing instances of AtomicPattern.
  • Constructor Details

    • AtomicPatternBuilder

      public AtomicPatternBuilder()
      Creates a new atomic pattern builder.
  • Method Details

    • withPredicate

      public AtomicPatternBuilder withPredicate(Predicate predicate)
      Sets the predicate for the AtomicPattern.
      Parameters:
      predicate - The predicate to be set.
      Returns:
      The builder instance.
    • addMandatoryPosition

      public AtomicPatternBuilder addMandatoryPosition(int position)
      Adds a mandatory position.
      Parameters:
      position - The position to be added.
      Returns:
      The builder instance.
    • addTermConstraint

      public AtomicPatternBuilder addTermConstraint(int position, Class<? extends Term> termClass)
      Adds a term constraint.
      Parameters:
      position - The position to constrain.
      termClass - The term class allowed at this position.
      Returns:
      The builder instance.
    • withIndexablePatternsFunction

      public AtomicPatternBuilder withIndexablePatternsFunction(Function<AtomicPattern, Set<Set<Integer>>> function)
      Sets a function to determine indexable patterns dynamically.
      Parameters:
      function - The function that modifies indexable patterns.
      Returns:
      The builder instance.
    • withCreateQueriesFunction

      public AtomicPatternBuilder withCreateQueriesFunction(BiFunction<AtomicPattern, Map<Integer,Term>, Stream<BasicQuery>> function)
      Sets a function to generate queries dynamically.
      Parameters:
      function - The function that generates queries from an Atom.
      Returns:
      The builder instance.
    • build

      public AtomicPattern build()
      Builds and returns an instance of AtomicPattern.
      Returns:
      A new AtomicPattern instance.