<?xml version="1.0" encoding="Windows-1255" ?><Interface name="KitRules" alias="$ENV" id="core.env:KitRules" sort="23" urn="core.env:extensions.KitRules.js" toc="\Extension Points"><Summary>Extension point for defining kit rules.</Summary><Remarks>&lt;font color=&quot;red&quot;&gt;Important Note: The Rules framework is in preliminary design stage, and subject to API changes. &lt;/font&gt;</Remarks><Copyright>(c) SAP AG 2003-2006. All rights reserved.</Copyright>
<Topics>
<Property name="ruleParsingHelper" type="Object" access="RW" sortGroup="true" scope="public" id="core.env:KitRules!ruleParsingHelper" sort="34" group="Properties" seq="0000"><Summary>Gets a helper object for parsing rules.</Summary></Property>
<Method name="defineRule" sortGroup="true" scope="public" id="core.env:KitRules!defineRule" sort="35" group="Methods" seq="0001"><Summary>Defines a new rule.</Summary><Parameters signature="method:: &lt;i&gt;$ENV&lt;/i&gt;.&lt;b&gt;defineRule&lt;/b&gt;(&lt;i&gt;def&lt;/i&gt;, &lt;i&gt;debug&lt;/i&gt;) &amp;rarr; &lt;q ref=&quot;core.env:KitRules!RULE_DEF&quot;&gt;RULE_DEF&lt;/q&gt;"><Param name="def" type="RULE_DEF" typeRef="&lt;q ref=&quot;core.env:KitRules!RULE_DEF&quot;&gt;RULE_DEF&lt;/q&gt;">The rule definition object.</Param><Param name="debug" default="false" type="Boolean">Indicates whether to allow debugging.</Param></Parameters><Return type="RULE_DEF" typeRef="&lt;q ref=&quot;core.env:KitRules!RULE_DEF&quot;&gt;RULE_DEF&lt;/q&gt;">The newly defined rule.</Return></Method>
<Method name="defineRuleClassifier" sortGroup="true" scope="public" id="core.env:KitRules!defineRuleClassifier" sort="35" group="Methods" seq="0002"><Summary>Defines a rule helper function.</Summary><Parameters signature="method:: &lt;i&gt;$ENV&lt;/i&gt;.&lt;b&gt;defineRuleClassifier&lt;/b&gt;(&lt;i&gt;id&lt;/i&gt;, &lt;i&gt;name&lt;/i&gt;, &lt;i&gt;type&lt;/i&gt;, &lt;i&gt;expr&lt;/i&gt;) &amp;rarr; void"><Param name="id" type="QName">The rule Id.</Param><Param name="name" type="String">The classifier name.</Param><Param name="type" type="String">The classifier type name. Can any qualified GML class name as well as primitive JS classes (String, Number, Boolean).</Param><Param name="expr" type="String">The classifier computation expression (if omitted, the expression is taken to be equal to &lt;code&gt;name)&lt;/code&gt;</Param></Parameters><Return></Return><Remarks>This method defines a new rule classifier, according to:
   	&lt;ul&gt;&lt;li&gt;The classifier is computed in terms of the rule parameters. The classifier computation expression must evaluate to the specified classifier type. &lt;/li&gt;&lt;li&gt;The order in which the classifiers are defined determines the evaluation order of the rule constraints. &lt;/li&gt;&lt;li&gt;Rule classifiers can be defined at any point after the rule is defined but before it is used for the first time. This enables defining new classifiers even in extension kits. &lt;/li&gt;&lt;/ul&gt;</Remarks></Method>
<Method name="defineRuleHelper" sortGroup="true" scope="public" id="core.env:KitRules!defineRuleHelper" sort="35" group="Methods" seq="0003"><Summary>Defines a rule helper function.</Summary><Parameters signature="method:: &lt;i&gt;$ENV&lt;/i&gt;.&lt;b&gt;defineRuleHelper&lt;/b&gt;(&lt;i&gt;id&lt;/i&gt;, &lt;i&gt;funcName&lt;/i&gt;, &lt;i&gt;func&lt;/i&gt;) &amp;rarr; Boolean"><Param name="id" type="QName">The rule Id.</Param><Param name="funcName" type="String">The helper function name (should be unique within the scope of the rule).</Param><Param name="func" type="Function">The function object.</Param></Parameters><Return type="Boolean">Indicates whether the helper was successfully defined.</Return></Method>
<Method name="executeRule" sortGroup="true" scope="public" id="core.env:KitRules!executeRule" sort="35" group="Methods" seq="0004"><Summary>Executes a rule.</Summary><Parameters signature="method:: &lt;i&gt;$ENV&lt;/i&gt;.&lt;b&gt;executeRule&lt;/b&gt;(&lt;i&gt;id&lt;/i&gt;, &lt;i&gt;args...&lt;/i&gt;) &amp;rarr; Variant"><Param name="id" type="QName">The rule Id.</Param><Param name="args..." type="Arguments">The rule arguments.</Param></Parameters><Return type="Variant">The rule execution result.</Return></Method>
<Method name="extendRule" sortGroup="true" scope="public" id="core.env:KitRules!extendRule" sort="35" group="Methods" seq="0005"><Summary>Extends a rule by adding a new constrained behavior.</Summary><Parameters signature="method:: &lt;i&gt;$ENV&lt;/i&gt;.&lt;b&gt;extendRule&lt;/b&gt;(&lt;i&gt;id&lt;/i&gt;, &lt;i&gt;def&lt;/i&gt;) &amp;rarr; void"><Param name="id" type="QName">The rule Id.</Param><Param name="def" type="CONSTRAINT_DEF" typeRef="&lt;q ref=&quot;core.env:KitRules!CONSTRAINT_DEF&quot;&gt;CONSTRAINT_DEF&lt;/q&gt;">The constraint definition.</Param></Parameters><Return></Return></Method>
<Method name="getRule" sortGroup="true" scope="public" id="core.env:KitRules!getRule" sort="35" group="Methods" seq="0006"><Summary>Returns a specified rule object.</Summary><Parameters signature="method:: &lt;i&gt;$ENV&lt;/i&gt;.&lt;b&gt;getRule&lt;/b&gt;(&lt;i&gt;id&lt;/i&gt;) &amp;rarr; &lt;q ref=&quot;core.env:KitRules!RULE_DEF&quot;&gt;RULE_DEF&lt;/q&gt;"><Param name="id" type="QName">The rule Id.</Param></Parameters><Return type="RULE_DEF" typeRef="&lt;q ref=&quot;core.env:KitRules!RULE_DEF&quot;&gt;RULE_DEF&lt;/q&gt;">The requested rule object.</Return></Method>
<Method name="getRulesTable" sortGroup="true" scope="public" id="core.env:KitRules!getRulesTable" sort="35" group="Methods" seq="0007"><Summary>Returns the complete rules table.</Summary><Parameters signature="method:: &lt;i&gt;$ENV&lt;/i&gt;.&lt;b&gt;getRulesTable&lt;/b&gt;() &amp;rarr; &lt;q ref=&quot;core.env:KitRules!RULE_DEF&quot;&gt;RULE_DEF&lt;/q&gt;[id]"></Parameters><Return type="RULE_DEF[id]" typeRef="&lt;q ref=&quot;core.env:KitRules!RULE_DEF&quot;&gt;RULE_DEF&lt;/q&gt;[id]">Table of rule objects, indexed by rule id.</Return><Remarks>Rule id's are stored in uppercase. Use &lt;q ref=&quot;core.lib:Basic!UPPER&quot;&gt;UPPER&lt;/q&gt; macro to convert the rule id to uppercase
before using it as the index in this table.</Remarks></Method>
<Method name="parseRulesXml" sortGroup="true" scope="public" id="core.env:KitRules!parseRulesXml" sort="35" group="Methods" seq="0008"><Summary>Parses an XML object containing a collection of rule definitions.</Summary><Parameters signature="method:: &lt;i&gt;$ENV&lt;/i&gt;.&lt;b&gt;parseRulesXml&lt;/b&gt;(&lt;i&gt;xml&lt;/i&gt;, &lt;i&gt;file&lt;/i&gt;) &amp;rarr; void"><Param name="xml" type="xd">The rules XML object.</Param><Param name="file" type="String">The source file from which the XML object was read.</Param></Parameters><Return></Return></Method>
<Method name="reloadRule" sortGroup="true" scope="public" id="core.env:KitRules!reloadRule" sort="35" group="Methods" seq="0009"><Summary>Reloads a specified rule.</Summary><Parameters signature="method:: &lt;i&gt;$ENV&lt;/i&gt;.&lt;b&gt;reloadRule&lt;/b&gt;(&lt;i&gt;id&lt;/i&gt;, &lt;i&gt;quiet&lt;/i&gt;, &lt;i&gt;debug&lt;/i&gt;) &amp;rarr; Boolean"><Param name="id" type="QName">The rule Id.</Param><Param name="quiet" default="false" type="Boolean">Indicates whether to suppress errors reporting.</Param><Param name="debug" default="false" type="Boolean">Indicates whether to allow debugging.</Param></Parameters><Return type="Boolean">Indicates whether the rule was successfully reloaded. In case of failure, use the $ENV.getKitErrors() to obtain the detailed error messages.</Return></Method>
<Method name="removeRule" sortGroup="true" scope="public" id="core.env:KitRules!removeRule" sort="35" group="Methods" seq="0010"><Summary>Removes a specified rule definition.</Summary><Parameters signature="method:: &lt;i&gt;$ENV&lt;/i&gt;.&lt;b&gt;removeRule&lt;/b&gt;(&lt;i&gt;id&lt;/i&gt;) &amp;rarr; void"><Param name="id" type="QName">The rule Id.</Param></Parameters><Return></Return></Method>
<Structure name="CONSTRAINT_DEF" sortGroup="true" id="core.env:KitRules!CONSTRAINT_DEF" sort="41" group="Structures" seq="0011"><Summary>Represents a rule constraint.</Summary><Remarks>The CONSTRAINT_DEF structure is made of:
			&lt;table class=&quot;BOTH&quot;&gt;&lt;tr&gt;&lt;td class=&quot;H V&quot;&gt;Name &lt;/td&gt;&lt;td class=H&gt;Type &lt;/td&gt;&lt;td class=H&gt;Description &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;constraint &lt;/td&gt;&lt;td&gt;String &lt;/td&gt;&lt;td&gt;The constraint expressed using the constraints syntax below. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;behavior &lt;/td&gt;&lt;td&gt;Function &lt;/td&gt;&lt;td&gt;The rule behavior when the constraint is satisfied. The behavior function can be defined using different forms, as described below. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;undo &lt;/td&gt;&lt;td&gt;Function &lt;/td&gt;&lt;td&gt;The rule undo when the constraint is satisfied. The undo function can be defined using different forms, as described below. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;redo &lt;/td&gt;&lt;td&gt;Function &lt;/td&gt;&lt;td&gt;The rule redo when the constraint is satisfied. The redo function can be defined using different forms, as described below. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;predicate &lt;/td&gt;&lt;td&gt;Function &lt;/td&gt;&lt;td&gt;Deprecated. An optional predicate that can be used to define conditional constraints. If provided, the constraint will be applied only if the predicate evaluates to &lt;code&gt;true.&lt;/code&gt; The predicate function can be defined using different forms, as described below. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;comments &lt;/td&gt;&lt;td&gt;String &lt;/td&gt;&lt;td&gt;Optional. Comments for describing the constraint behavior. &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

		&lt;p&gt;A constraint expression has the following syntax:&lt;/p&gt;
&lt;pre&gt;
&lt;i&gt;constraint&lt;/i&gt;:
   &lt;i&gt;constraint-clause&lt;/i&gt;
   &lt;i&gt;constraint-clause&lt;/i&gt; &lt;i&gt;or-operator&lt;/i&gt; &lt;i&gt;constraint&lt;/i&gt;
   &lt;b&gt;(&lt;/b&gt; &lt;i&gt;constraint&lt;/i&gt; &lt;b&gt;)&lt;/b&gt;

&lt;i&gt;constraint-clause&lt;/i&gt;:
   &lt;i&gt;constraint-term&lt;/i&gt;
   &lt;i&gt;constraint-term&lt;/i&gt; &lt;i&gt;and-operator&lt;/i&gt; &lt;i&gt;constraint-clause&lt;/i&gt;

&lt;i&gt;constraint-term&lt;/i&gt;:
   &lt;i&gt;classifier&lt;/i&gt; &lt;i&gt;isa-operator&lt;/i&gt; &lt;i&gt;gml-operand&lt;/i&gt;
   &lt;i&gt;classifier&lt;/i&gt; &lt;i&gt;isa-operator&lt;/i&gt; &lt;b&gt;{&lt;/b&gt; &lt;i&gt;gml-operand1&lt;/i&gt;, &lt;i&gt;gml-operand2&lt;/i&gt;, ... &lt;b&gt;}&lt;/b&gt;
   &lt;i&gt;classifier&lt;/i&gt; &lt;i&gt;islike-operator&lt;/i&gt; &lt;i&gt;string-operand&lt;/i&gt;
   &lt;i&gt;classifier&lt;/i&gt; &lt;i&gt;isequal-operator&lt;/i&gt; &lt;i&gt;operand&lt;/i&gt;
   &lt;i&gt;classifier&lt;/i&gt; &lt;i&gt;notequal-operator&lt;/i&gt; &lt;i&gt;operand&lt;/i&gt;

&lt;i&gt;classifier&lt;/i&gt;:
   any classifier name

&lt;i&gt;operator&lt;/i&gt;:
   &lt;i&gt;or-operator&lt;/i&gt;
   &lt;i&gt;and-operator&lt;/i&gt;
   &lt;i&gt;isa-operator&lt;/i&gt;
   &lt;i&gt;islike-operator&lt;/i&gt;
   &lt;i&gt;isequal-operator&lt;/i&gt;
   &lt;i&gt;notequal-operator&lt;/i&gt;

   &lt;i&gt;or-operator&lt;/i&gt;:
      &lt;b&gt;or&lt;/b&gt;
      &lt;b&gt;||&lt;/b&gt;

   &lt;i&gt;and-operator&lt;/i&gt;:
      &lt;b&gt;and&lt;/b&gt;
      &lt;b&gt;&amp;amp;&amp;amp;&lt;/b&gt;

   &lt;i&gt;isa-operator&lt;/i&gt;:
      &lt;b&gt;isA&lt;/b&gt;
      &lt;b&gt;&lt;code&gt;=&lt;/b&gt;&lt;/code&gt;

   &lt;i&gt;islike-operator&lt;/i&gt;:
      &lt;b&gt;isLike&lt;/b&gt;
      &lt;b&gt;&lt;code&gt;=&lt;/b&gt;&lt;/code&gt;

   &lt;i&gt;isequal-operator&lt;/i&gt;:
      &lt;b&gt;isEqual&lt;/b&gt;
      &lt;b&gt;==&lt;/b&gt;

   &lt;i&gt;notequal-operator&lt;/i&gt;:
      &lt;b&gt;notEqual&lt;/b&gt;
      &lt;b&gt;!=&lt;/b&gt;

&lt;i&gt;operand&lt;/i&gt;:
   gml-operand
   string-operand
   numeric-operand
   boolean-operand

   &lt;i&gt;gml-operand&lt;/i&gt;:
      any gmldom class name

   &lt;i&gt;string-operand&lt;/i&gt;:
      &lt;b&gt;&quot;&lt;/b&gt; any string &lt;b&gt;&quot;&lt;/b&gt;
      &lt;b&gt;'&lt;/b&gt; any string &lt;b&gt;'&lt;/b&gt;

   &lt;i&gt;numeric-operand&lt;/i&gt;:
      any number

   &lt;i&gt;boolean-operand&lt;/i&gt;:
      &lt;b&gt;true&lt;/b&gt;
      &lt;b&gt;false&lt;/b&gt;

&lt;/pre&gt;
		Additional notes about the constraints syntax:
			&lt;ol&gt;&lt;li&gt;The operators are case-insensitive &lt;/li&gt;&lt;li&gt;The operators have the following precedence order (from lowest to highest): &lt;ul&gt;&lt;li&gt;or &lt;/li&gt;&lt;li&gt;and &lt;/li&gt;&lt;li&gt;isA, isLike, isEqual, notEqual &lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;li&gt;Parantheses can be used for legibility. However, the parantheses are discarded before the constraint is parsed and thus do not affect the precedence order. &lt;/li&gt;&lt;li&gt;A classifier can be used at most once within the same constraint-term. &lt;/li&gt;&lt;/ol&gt;

		The behavior functions can be defined using any one of the following forms:
			&lt;ol&gt;&lt;li&gt;A function with same parameters signature as the rule &lt;/li&gt;&lt;li&gt;A function without parameters (the rule parameters can still be referenced directly by their name) &lt;/li&gt;&lt;li&gt;A string containing the function body (the rule parameters can be referenced directly by their name) &lt;/li&gt;&lt;/ol&gt;</Remarks></Structure>
<Structure name="RULE_DEF" sortGroup="true" id="core.env:KitRules!RULE_DEF" sort="41" group="Structures" seq="0012"><Summary>Represents a Storyboard rule definition.</Summary><Remarks>The RULE_DEF structure is made of:
			&lt;table class=&quot;BOTH&quot;&gt;&lt;tr&gt;&lt;td class=&quot;H V&quot;&gt;Name &lt;/td&gt;&lt;td class=H&gt;Type &lt;/td&gt;&lt;td class=H&gt;Description &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;id &lt;/td&gt;&lt;td&gt;QName &lt;/td&gt;&lt;td&gt;The rule Id. Must be fully qualified (e.g. com.sap.mypackage:id) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;name &lt;/td&gt;&lt;td&gt;String &lt;/td&gt;&lt;td&gt;Optional. Display name for the rule. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;icon &lt;/td&gt;&lt;td&gt;String &lt;/td&gt;&lt;td&gt;Optional. Display icon for the rule. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;description &lt;/td&gt;&lt;td&gt;String &lt;/td&gt;&lt;td&gt;Optional. The rule description. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;parameters &lt;/td&gt;&lt;td&gt;String &lt;/td&gt;&lt;td&gt;The rule parameters. This is a comma-separated list of the rule parameters, where each parameter is given as a type+name pair (separated by whitespace). &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;classifiers &lt;/td&gt;&lt;td&gt;String &lt;/td&gt;&lt;td&gt;The rule classifiers. This is a comma-separated list of the parameter names that are used for classifying the rule constraints. The classifiers are listed from the most important to the least important. All classifiers must be parameters of type GMLDOM object/class. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;returnValue &lt;/td&gt;&lt;td&gt;String &lt;/td&gt;&lt;td&gt;The rule return value (default is Boolean) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;constraints &lt;/td&gt;&lt;td&gt;&lt;nobr&gt;&lt;q ref=&quot;core.env:KitRules!CONSTRAINT_DEF&quot;&gt;CONSTRAINT_DEF&lt;/q&gt;[]&lt;/nobr&gt; &lt;/td&gt;&lt;td&gt;The list of rule constraints &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;declarative &lt;/td&gt;&lt;td&gt;Boolean &lt;/td&gt;&lt;td&gt;Indicates whether the rule is declarative (default is &lt;code&gt;false).&lt;/code&gt; A declarative rule is a rule whose behavior is defined without code. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;additive &lt;/td&gt;&lt;td&gt;Boolean &lt;/td&gt;&lt;td&gt;Indicates whether the rule constraints are additive. That is, all matching rule constraints are applied in increasing order of specificity. Default is &lt;code&gt;false.&lt;/code&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;restrictive &lt;/td&gt;&lt;td&gt;Boolean &lt;/td&gt;&lt;td&gt;Indicates whether the rule constraints are restrictive. That is, from the set of matching rule constraints only the most specific one is applied. Default is &lt;code&gt;true.&lt;/code&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;transactive &lt;/td&gt;&lt;td&gt;Boolean &lt;/td&gt;&lt;td&gt;Indicates whether the rule is transactional (default is &lt;code&gt;false).&lt;/code&gt; A transactive rule is implicitly also a restrictive rule. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;protected &lt;/td&gt;&lt;td&gt;Boolean &lt;/td&gt;&lt;td&gt;Indicates whether the rule is protected (default is &lt;code&gt;false).&lt;/code&gt; A protected rule can be extended only within the package in which it is defined. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;inlineCode &lt;/td&gt;&lt;td&gt;Boolean &lt;/td&gt;&lt;td&gt;Indicates whether to use inline code in the compiled rule for speed (default is &lt;code&gt;true).&lt;/code&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;behavior &lt;/td&gt;&lt;td&gt;Function &lt;/td&gt;&lt;td&gt;The default rule behavior when no rule constraints have been satisfied. The behavior function can be defined using different forms, as described in &lt;q ref=&quot;core.env:KitRules!CONSTRAINT_DEF&quot;&gt;CONSTRAINT_DEF&lt;/q&gt;. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;undo &lt;/td&gt;&lt;td&gt;Function &lt;/td&gt;&lt;td&gt;The default rule undo when no rule constraints have been satisfied. The undo function can be defined using different forms, as described in &lt;q ref=&quot;core.env:KitRules!CONSTRAINT_DEF&quot;&gt;CONSTRAINT_DEF&lt;/q&gt;. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;redo &lt;/td&gt;&lt;td&gt;Function &lt;/td&gt;&lt;td&gt;The default rule redo when no rule constraints have been satisfied. The redo function can be defined using different forms, as described in &lt;q ref=&quot;core.env:KitRules!CONSTRAINT_DEF&quot;&gt;CONSTRAINT_DEF&lt;/q&gt;. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;initialize &lt;/td&gt;&lt;td&gt;Function &lt;/td&gt;&lt;td&gt;The rule initialization code. The initialization code is executed just before the rule behaviors are executed. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;finalize &lt;/td&gt;&lt;td&gt;Function &lt;/td&gt;&lt;td&gt;The rule finalization code. The finalization code is executed just after the rule behaviors are executed. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;parser &lt;/td&gt;&lt;td&gt;Function &lt;/td&gt;&lt;td&gt;The rule parsing code. The parsing code is used for parsing declarative rules in XML format. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;onreload &lt;/td&gt;&lt;td&gt;Function &lt;/td&gt;&lt;td&gt;The rule reloading handler. The reloading handler is executed just after the rule is reloaded (e.g., by the sdk tools) and can be used to refresh relevant parts of the workspace that may depend on the reloaded rule. The reloading handler is not invoked when the rule is first loaded (during kits installation). &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=V&gt;comments &lt;/td&gt;&lt;td&gt;String &lt;/td&gt;&lt;td&gt;Optional. Comments for describing the default rule behavior. &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

		Notes:
			&lt;ol&gt;&lt;li&gt;The additive and restrictive flags are mutually exclusive. &lt;/li&gt;&lt;li&gt;A transactive rule is implicitly also a restrictive rule. &lt;/li&gt;&lt;/ol&gt;</Remarks></Structure>
</Topics>
</Interface>