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    }