001    /**
002     * <copyright>
003     * </copyright>
004     *
005     * $Id$
006     */
007    package com.hammurapi.reasoning.spi.model;
008    
009    import com.hammurapi.config.NamedObjectDefinition;
010    
011    /**
012     * <!-- begin-user-doc -->
013     * A representation of the model object '<em><b>Rule</b></em>'.
014     * <!-- end-user-doc -->
015     *
016     * <!-- begin-model-doc -->
017     * Rule class contains inference methods.
018     * <!-- end-model-doc -->
019     *
020     * <p>
021     * The following features are supported:
022     * <ul>
023     *   <li>{@link com.hammurapi.reasoning.spi.model.Rule#getPriority <em>Priority</em>}</li>
024     * </ul>
025     * </p>
026     *
027     * @see com.hammurapi.reasoning.spi.model.ModelPackage#getRule()
028     * @model
029     * @generated
030     */
031    public interface Rule extends NamedObjectDefinition {
032            /**
033             * Returns the value of the '<em><b>Priority</b></em>' attribute.
034             * The default value is <code>"0"</code>.
035             * <!-- begin-user-doc -->
036             * <!-- end-user-doc -->
037             * <!-- begin-model-doc -->
038             * Rule priority applies to all inference methods in the rule. Priority specified in @Infer annotation overrides rule level priority setting.
039             * Rules with higher priority are executed before rules with lower priority. Rules with higher priority can "consume" input fact, thus preventing invocation of rules with lower priority. Order of execution of rules with the same priority is undefined. 
040             * <!-- end-model-doc -->
041             * @return the value of the '<em>Priority</em>' attribute.
042             * @see #setPriority(int)
043             * @see com.hammurapi.reasoning.spi.model.ModelPackage#getRule_Priority()
044             * @model default="0"
045             * @generated
046             */
047            int getPriority();
048    
049            /**
050             * Sets the value of the '{@link com.hammurapi.reasoning.spi.model.Rule#getPriority <em>Priority</em>}' attribute.
051             * <!-- begin-user-doc -->
052             * <!-- end-user-doc -->
053             * @param value the new value of the '<em>Priority</em>' attribute.
054             * @see #getPriority()
055             * @generated
056             */
057            void setPriority(int value);
058    
059    } // Rule