001package org.biopax.paxtools.io.sif;
002
003import org.biopax.paxtools.model.BioPAXElement;
004import org.biopax.paxtools.model.Model;
005
006import java.util.List;
007import java.util.Map;
008
009/**
010 * This interface defines a rule which can be run on BioPAX model to derive
011 * simple interactions. All new rules should implement this interface.  
012 * User: demir Date: Dec 28, 2007 Time: 3:49:46 PM
013 */
014public interface InteractionRule
015{
016        /**
017         * This method populates the interactionSet with simple interactions that can
018         * be derived from the model based on this rule.
019         * @param set to be populated
020         * @param entity this must be a physicalEntity for L2, and PhysicalEntity for L3
021         * @param model BioPAX model
022         */
023        public void inferInteractions(
024                InteractionSet  set,
025                BioPAXElement entity,
026                Model model);
027
028        /**
029         * Gets a list of the rule types that this class implements.
030         * @return supported rules
031         */
032        public List<BinaryInteractionType> getRuleTypes();
033
034        /**
035         * Uses the parameter map as options for the rule. Each rule defines its possible keys for the
036         * options map. Values are always Boolean.
037         * @param options options map
038         */
039        public void initOptions(Map options);
040}