Class ReteEngine

java.lang.Object
tools.refinery.interpreter.rete.matcher.ReteEngine
All Implemented Interfaces:
IQueryBackend

public class ReteEngine extends Object implements IQueryBackend
  • Field Details

  • Constructor Details

    • ReteEngine

      public ReteEngine(IQueryBackendContext context, int reteThreads)
      Parameters:
      context - the context of the pattern matcher, conveying all information from the outside world.
      reteThreads - the number of threads to operate the RETE network with; 0 means single-threaded operation, 1 starts an asynchronous thread to operate the RETE net, >1 uses multiple RETE containers.
    • ReteEngine

      public ReteEngine(IQueryBackendContext context, int reteThreads, boolean deleteAndRederiveEvaluation, TimelyConfiguration timelyConfiguration)
      Since:
      2.4
  • Method Details

    • getBackendContext

      public IQueryBackendContext getBackendContext()
      Since:
      1.6
    • isDeleteAndRederiveEvaluation

      public boolean isDeleteAndRederiveEvaluation()
      Since:
      2.2
    • getTimelyConfiguration

      public TimelyConfiguration getTimelyConfiguration()
      Since:
      2.4
    • flushUpdates

      public void flushUpdates()
      Specified by:
      flushUpdates in interface IQueryBackend
    • killEngine

      public void killEngine()
      Deconstructs the engine to get rid of it finally
    • reset

      public void reset()
      Resets the engine to an after-initialization phase
    • accessMatcher

      public RetePatternMatcher accessMatcher(PQuery query)
      Accesses the patternmatcher for a given pattern, constructs one if a matcher is not available yet.
      Parameters:
      query - the pattern to be matched.
      Returns:
      a patternmatcher object that can match occurences of the given pattern.
      Throws:
      InterpreterRuntimeException - if construction fails.
    • buildMatchersCoalesced

      public void buildMatchersCoalesced(Collection<PQuery> specifications)
      Constructs RETE pattern matchers for a collection of patterns, if they are not available yet. Model traversal during the whole construction period is coalesced (which may have an effect on performance, depending on the matcher context).
      Parameters:
      specifications - the patterns to be matched.
      Throws:
      InterpreterRuntimeException - if construction fails.
    • constructionWrapper

      public <T> T constructionWrapper(Callable<T> payload)
      Since:
      2.4
    • executeDelayedCommands

      public void executeDelayedCommands()
      Since:
      2.3
    • settle

      public void settle()
      Waits until the pattern matcher is in a steady state and output can be retrieved.
    • settle

      public void settle(Runnable action)
      Waits until the pattern matcher is in a steady state and output can be retrieved. When steady state is reached, a retrieval action is executed before the steady state ceases.
      Parameters:
      action - the action to be run when reaching the steady-state.
    • getReteNet

      public Network getReteNet()
      Returns:
      the reteNet
    • getBoundary

      public ReteBoundary getBoundary()
      Returns:
      the boundary
    • setCompiler

      public void setCompiler(ReteRecipeCompiler builder)
      Parameters:
      builder - the pattern matcher builder to set
    • addDisconnectable

      public void addDisconnectable(Disconnectable disc)
      Parameters:
      disc - the new Disconnectable adapter.
    • isParallelExecutionEnabled

      public boolean isParallelExecutionEnabled()
      Returns:
      the parallelExecutionEnabled
    • getLogger

      public org.apache.log4j.Logger getLogger()
    • getRuntimeContext

      public IQueryRuntimeContext getRuntimeContext()
    • getCompiler

      public ReteRecipeCompiler getCompiler()
    • isDisposedOrUninitialized

      public boolean isDisposedOrUninitialized()
      Since:
      2.9
    • getResultProvider

      public IQueryResultProvider getResultProvider(PQuery query)
      Specified by:
      getResultProvider in interface IQueryBackend
    • getResultProvider

      public IQueryResultProvider getResultProvider(PQuery query, QueryEvaluationHint hints)
      Specified by:
      getResultProvider in interface IQueryBackend
      Since:
      1.4
    • peekExistingResultProvider

      public IQueryResultProvider peekExistingResultProvider(PQuery query)
      Specified by:
      peekExistingResultProvider in interface IQueryBackend
    • dispose

      public void dispose()
      Specified by:
      dispose in interface IQueryBackend
    • isCaching

      public boolean isCaching()
      Specified by:
      isCaching in interface IQueryBackend
    • getHintConfiguration

      public IQueryBackendHintProvider getHintConfiguration()
      Since:
      1.5
    • getFactory

      public IQueryBackendFactory getFactory()
      Specified by:
      getFactory in interface IQueryBackend