001 package com.hammurapi.reasoning.impl;
002
003 import com.hammurapi.flow.Flow;
004
005 public interface RuleSetFlowOptimizer {
006
007 /**
008 * Optimizes flow by removing unnecessary passthrough nodes and transitions and by
009 * rearranging condition and accept nodes.
010 * @param ruleSetFlow
011 */
012 void optimize(Flow ruleSetFlow);
013
014 /**
015 * Allows to order optimizers. Optimizers with higher order are executed after optimizers with
016 * lower order.
017 * @return
018 */
019 int getOrder();
020
021 }