<?xml version="1.0" encoding="Windows-1255" ?><Interface name="KitClasses" alias="$ENV" id="core.env:KitClasses" sort="23" urn="core.env:extensions.KitClasses.js" toc="\Extension Points"><Summary>Extension point for defining kit classes, prototypes, and aspects.</Summary><Copyright>(c) SAP AG 2003-2006. All rights reserved.</Copyright>
<Topics>
<Method name="createObject" sortGroup="true" scope="public" id="core.env:KitClasses!createObject" sort="35" group="Methods" seq="0000"><Summary>Creates a new object instance of a specified class.</Summary><Parameters label="Form 1" descr="Use this form for instantiating GmlObject or any of its sub-classes." signature="method:: &lt;i&gt;$ENV&lt;/i&gt;.&lt;b&gt;createObject&lt;/b&gt;(&lt;i&gt;className&lt;/i&gt;, &lt;i&gt;values&lt;/i&gt;) &amp;rarr; Object"><Param name="className" type="QName">The class name.</Param><Param name="values" default="" type="Variant[id]">The property values for initializing the new GmlObject.</Param></Parameters><Parameters label="Form 2" descr="Use this form for instantiating non-GmlObject classes." signature="method:: &lt;i&gt;$ENV&lt;/i&gt;.&lt;b&gt;createObject&lt;/b&gt;(&lt;i&gt;className&lt;/i&gt;, &lt;i&gt;args...&lt;/i&gt;) &amp;rarr; Object"><Param name="className" type="QName">The class name.</Param><Param name="args..." default="" type="Arguments">A variable list of arguments to pass to the class constructor.</Param></Parameters><Return type="Object">The new object instance, or &lt;code&gt;null&lt;/code&gt; in case of any error.</Return></Method>
<Method name="defineClass" sortGroup="true" scope="public" id="core.env:KitClasses!defineClass" sort="35" group="Methods" seq="0001"><Summary>Defines or redefines a classifier (class/aspect/prototype) by compiling the given source code.</Summary><Parameters signature="method:: &lt;i&gt;$ENV&lt;/i&gt;.&lt;b&gt;defineClass&lt;/b&gt;(&lt;i&gt;code&lt;/i&gt;, &lt;i&gt;package&lt;/i&gt;, &lt;i&gt;fileUrn&lt;/i&gt;) &amp;rarr; String"><Param name="code" type="String">The source code.</Param><Param name="package" type="PackageInfo!" typeRef="&lt;q ref=&quot;core.env:PackageInfo&quot;&gt;PackageInfo&lt;/q&gt;">The package to which the classifier belongs to.</Param><Param name="fileUrn" default="" type="String">The urn of the classifier source file.</Param></Parameters><Return type="String">If an error was encountered, returns the corresponding error message; otherwise, returns null.</Return><Remarks>The source code should contain the full classifier declaration.
      Also, it should be JavaScript code.</Remarks></Method>
<Method name="defineMember" sortGroup="true" scope="public" id="core.env:KitClasses!defineMember" sort="35" group="Methods" seq="0002"><Summary>Defines or redefines class members by compiling the given source code fragment.</Summary><Parameters signature="method:: &lt;i&gt;$ENV&lt;/i&gt;.&lt;b&gt;defineMember&lt;/b&gt;(&lt;i&gt;code&lt;/i&gt;) &amp;rarr; String"><Param name="code" type="String">The source code.</Param></Parameters><Return type="String">If an error was encountered, returns the corresponding error message; otherwise, returns null.</Return><Remarks>The source code fragment can contain any number of member declarations.</Remarks></Method>
<Method name="getAssociationsTable" sortGroup="true" scope="public" id="core.env:KitClasses!getAssociationsTable" sort="35" group="Methods" seq="0003"><Summary>Gets the list of all class associations.</Summary><Parameters signature="method:: &lt;i&gt;$ENV&lt;/i&gt;.&lt;b&gt;getAssociationsTable&lt;/b&gt;() &amp;rarr; Object[name]"></Parameters><Return type="Object[name]">Returns the table of all class associations, indexed by source class name.</Return></Method>
<Method name="getClass" sortGroup="true" scope="public" id="core.env:KitClasses!getClass" sort="35" group="Methods" seq="0004"><Summary>Gets a specified classifier.</Summary><Parameters signature="method:: &lt;i&gt;$ENV&lt;/i&gt;.&lt;b&gt;getClass&lt;/b&gt;(&lt;i&gt;className&lt;/i&gt;) &amp;rarr; Function"><Param name="className" type="QName">The classifier name.</Param></Parameters><Return type="Function">The requested classifier.</Return></Method>
<Method name="getClassesTable" sortGroup="true" scope="public" id="core.env:KitClasses!getClassesTable" sort="35" group="Methods" seq="0005"><Summary>Gets the list of all classifiers.</Summary><Parameters signature="method:: &lt;i&gt;$ENV&lt;/i&gt;.&lt;b&gt;getClassesTable&lt;/b&gt;() &amp;rarr; Function[name]"></Parameters><Return type="Function[name]">Returns the table of all kit classifiers, indexed by name.</Return></Method>
<Method name="getNamespacesTable" sortGroup="true" scope="public" id="core.env:KitClasses!getNamespacesTable" sort="35" group="Methods" seq="0006"><Summary>Gets the list of all namespaces.</Summary><Parameters signature="method:: &lt;i&gt;$ENV&lt;/i&gt;.&lt;b&gt;getNamespacesTable&lt;/b&gt;() &amp;rarr; Function[name]"></Parameters><Return type="Function[name]">Returns the table of all kit classifiers, indexed by name.</Return></Method>
<Method name="partialClassOrdering" sortGroup="true" scope="public" id="core.env:KitClasses!partialClassOrdering" sort="35" group="Methods" seq="0007"><Summary>Defines a partial ordering relation over the set of all classifiers.</Summary><Parameters signature="method:: &lt;i&gt;$ENV&lt;/i&gt;.&lt;b&gt;partialClassOrdering&lt;/b&gt;(&lt;i&gt;C1&lt;/i&gt;, &lt;i&gt;C2&lt;/i&gt;) &amp;rarr; Number"><Param name="C1" type="String">The first classifier  name (or '*').</Param><Param name="C2" type="String">The second classifier  name (or '*').</Param></Parameters><Return type="Number">returns -1 if &lt;code&gt;C1&lt;/code&gt; &amp;lt; &lt;code&gt;C2,&lt;/code&gt; +1 if &lt;code&gt;C1&lt;/code&gt; &amp;gt; &lt;code&gt;C2,&lt;/code&gt; or 0 otherwise.</Return><Remarks>&lt;p&gt;
      This method can be used for defining a partial ordering relation over the set of all installed classifiers.
      The ordering relation between two classifiers (C1,C2) is defined as follows:
      &lt;/p&gt;&lt;p&gt;
      &lt;code&gt;C1&lt;/code&gt; &amp;lt; &lt;code&gt;C2&lt;/code&gt; iff (&lt;code&gt;C1&lt;/code&gt; != &lt;code&gt;C2)&lt;/code&gt; and ( (&lt;code&gt;C2&lt;/code&gt; == '*') or (&lt;code&gt;C1&lt;/code&gt; isa &lt;code&gt;C2)&lt;/code&gt; or (P1 &amp;lt; P2)
      &lt;/p&gt;&lt;p&gt;
      Where P1 resp. P2 are the top-most ancestors of C1 resp. C2 that are not derived from each other. P1 and P2 are compared in lexicographical order.
      &lt;/p&gt;</Remarks></Method>
<Method name="removeClass" sortGroup="true" scope="public" id="core.env:KitClasses!removeClass" sort="35" group="Methods" seq="0008"><Summary>Removes a specified classifier definition.</Summary><Parameters signature="method:: &lt;i&gt;$ENV&lt;/i&gt;.&lt;b&gt;removeClass&lt;/b&gt;(&lt;i&gt;name&lt;/i&gt;) &amp;rarr; String"><Param name="name" type="QName">The name of the classifier to remove.</Param></Parameters><Return type="String">If an error was encountered, returns the corresponding error message; otherwise, returns null.</Return><Remarks>Existing object instances are not affected by this method. They will continue
      to exist and will retain the classifier definitions until they are explicitly removed.</Remarks></Method>
</Topics>
</Interface>