Changeset 3944


Ignore:
Timestamp:
Nov 9, 2007, 4:31:00 PM (16 years ago)
Author:
Martin Svensson
Message:

References #819 The class-tag and interface-tag are now linking to the javadoc for the tagged class or interface.
Updated the source files of the documentation.

Location:
trunk
Files:
1 added
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/doc/src/docbook/admindoc/plugin_installation.xml

    r3943 r3944  
    343343          each row is an icon that displays summarized information about the plug-in when
    344344          the mouse pointer is held over it. Most of this information is from the plug-in's
    345           <classname>About</classname>
     345          <classname docapi="net.sf.basedb.core.plugins">About</classname>
    346346          property but some, like 'Works with', 'Class' and 'Jar' is from the installation
    347347          file included in the JAR file. A plug-in can also be distributed with one or many
  • trunk/doc/src/docbook/admindoc/user_administration.xml

    r3675 r3944  
    352352                <guilabel>Additional info</guilabel>
    353353                tab is only visible if there is one or more property defined for
    354                 <classname>UserData</classname>
     354                <classname docapi="net.sf.basedb.core.data">UserData</classname>
    355355                in the configuration file for extended properties.
    356356              </para>
  • trunk/doc/src/docbook/appendix/base.config.xml

    r3871 r3944  
    288288        BASE ships with a simple plugin that checks if a user has a valid email
    289289        account on a POP3 server. It is not enabled by default. The class name
    290         of that plugin is <classname>net.sf.basedb.core.authentication.POP3Authenticator</classname>.
     290        of that plugin is <classname docapi="net.sf.basedb.core.authentication">net.sf.basedb.core.authentication.POP3Authenticator</classname>.
    291291        If no class is specified internal authentication is used.
    292292          </para>
     
    300300        Initialisation parameters sent to the plug-in when calling the
    301301        <methodname>init()</methodname> method. The syntax and meaning of this
    302         string depends on the plugin. For the <classname>POP3Authenticator</classname>
     302        string depends on the plugin. For the <classname docapi="net.sf.basedb.core.authentication">POP3Authenticator</classname>
    303303        this is simply the name or IP-address of the mail server.
    304304          </para>
     
    477477        BASE ships with a simple plug-in that just moves files to another directory,
    478478        but it is not enabled by default. The class name of that plug-in is
    479         <classname>net.sf.basedb.core.InternalStorageController</classname>.
     479        <classname docapi="net.sf.basedb.core">net.sf.basedb.core.InternalStorageController</classname>.
    480480        If no class is specified the secondary storage feature is disabled.
    481481          </para>
  • trunk/doc/src/docbook/appendix/incompatible.xml

    r3872 r3944  
    5555      for the <filename>raw-data-types.xml</filename> file. BASE will refuse
    5656      to start if it finds this attribute. Raw data types which doesn't use
    57       the database for storing data should be registered as <classname>Platform</classname>:s
     57      the database for storing data should be registered as <classname docapi="net.sf.basedb.core">Platform</classname>:s
    5858      instead.
    5959    </para>
     
    6161    <para>
    6262      Applications or plug-ins that filters on the <property>rawDataType</property>
    63       property for <classname>RawBioAssay</classname> or <classname>Experiment</classname>
     63      property for <classname docapi="net.sf.basedb.core">RawBioAssay</classname> or <classname docapi="net.sf.basedb.core">Experiment</classname>
    6464      may need to change. The ID given to raw data types that doesn't use the
    6565      database for storing data are prefixed with "<constant>platform.</constant>".
  • trunk/doc/src/docbook/appendix/jobagent.properties.xml

    r3679 r3944  
    211211          <listitem>           
    212212            <para>
    213             <classname>net.sf.basedb.clients.jobagent.executors.ProcessJobExecutor</classname>:
     213            <classname docapi="net.sf.basedb.clients.jobagent.executors">
     214              net.sf.basedb.clients.jobagent.executors.ProcessJobExecutor
     215            </classname>:
    214216            Executes the job in an
    215217            external process. This is the recommended executor and is the default
     
    223225          <listitem>
    224226            <para>
    225             <classname>net.sf.basedb.clients.jobagent.executors.ThreadJobExecutor</classname>:     
     227            <classname docapi="net.sf.basedb.clients.jobagent.executors">
     228              net.sf.basedb.clients.jobagent.executors.ThreadJobExecutor
     229            </classname>:     
    226230            Executes the job in a separate thread. This is only recommended
    227231            for plugins that are  trusted and safe. A misbehaving plugin can affect the job agent
     
    233237          <listitem>
    234238            <para>
    235             <classname>net.sf.basedb.clients.jobagent.executors.DummyJobExecutor</classname>:     
     239            <classname docapi="net.sf.basedb.clients.jobagent.executors">net.sf.basedb.clients.jobagent.executors.DummyJobExecutor</classname>:     
    236240            Does not execute the job. It only marks the job as being executed,
    237241            and after waiting some time, as finished successfully.
     
    243247          It is possible to create your own implementation of a job executor.
    244248          Create a class that implements the
    245           <interfacename>net.sf.basedb.clients.jobagent.JobExecutor</interfacename>
     249          <interfacename docapi="net.sf.basedb.clients.jobagent">net.sf.basedb.clients.jobagent.JobExecutor</interfacename>
    246250          interface.         
    247251        </para>
     
    254258        <para>
    255259          Optional. The path to the Java executable used by the
    256           <classname>ProcessJobExecutor</classname>. If not specified the
     260          <classname docapi="net.sf.basedb.clients.jobagent.executors">
     261            ProcessJobExecutor
     262          </classname>. If not specified the
    257263          <envar>JAVA_HOME</envar> environment variable will be checked.
    258264          As a last resort <command>java</command> is used without path
     
    271277          <option>-Ms</option>), it will be added automatically by the
    272278          executor. This setting is used by the
    273           <classname>ProcessJobExecutor</classname> only.
     279          <classname docapi="net.sf.basedb.clients.jobagent.executors">ProcessJobExecutor</classname> only.
    274280        </para>
    275281      </listitem>
     
    280286      <listitem>
    281287        <para>
    282           Optional. Number of seconds the <classname>DummyJobExecutor</classname> should
     288          Optional. Number of seconds the <classname docapi="net.sf.basedb.clients.jobagent.executors">DummyJobExecutor</classname> should
    283289          wait before returning from the "job execution". The executor first sets
    284290          the progress to 50% then waits the specified number of seconds before
  • trunk/doc/src/docbook/appendix/raw_data_types.xml

    r3835 r3944  
    3232  <para>
    3333    Raw data can be stored either as files attached to items or in
    34     the database. The <classname>Platform</classname> item has information
     34    the database.
     35    The <classname docapi="net.sf.basedb.core">Platform</classname> item has information
    3536    about this. Configuration information for the database tables
    3637    and columns used to store raw data in the database is found in the
  • trunk/doc/src/docbook/developerdoc/core_ref.xml

    r3838 r3944  
    201201      <listitem>
    202202        <para>
    203         Add code to the <classname>net.sf.basedb.core.Update</classname> class
     203        Add code to the <classname docapi="net.sf.basedb.core">net.sf.basedb.core.Update</classname> class
    204204        to increase the schema version and modify data in existing installations.
    205205        </para>
     
    567567          The second-level cache is suitable for objects that are rarely modified but
    568568          are often needed. For example, we do not expect the user information represented
    569           by the <classname>UserData</classname> object to change very often, but it is
     569          by the <classname docapi="net.sf.basedb.core.data">UserData</classname> object to change very often, but it is
    570570          displayed all the time as the owner of various items.
    571571        </para>
     
    597597          The first question is the most important. Good candidates are classes with few
    598598          objects that change rarely, but are read often. Also, objects which are linked
    599           to by many other objects are good candidates. The <classname>UserData</classname>
    600           class is an example which matches all three requirements. The <classname>LabelData</classname>
    601           class is an example which fulfils the first two. The <classname>BioMaterialEventData</classname>
     599          to by many other objects are good candidates. The <classname docapi="net.sf.basedb.core.data">UserData</classname>
     600          class is an example which matches all three requirements. The <classname docapi="net.sf.basedb.core.data">LabelData</classname>
     601          class is an example which fulfils the first two. The <classname docapi="net.sf.basedb.core.data">BioMaterialEventData</classname>
    602602          class is on the other hand a bad cache candidate, since it is not linked to any
    603           other object than a <classname>BioMaterialData</classname> object.
     603          other object than a <classname docapi="net.sf.basedb.core.data">BioMaterialData</classname> object.
    604604        </para>
    605605       
     
    716716            since they are many and we want to use as little memory as possible. Here it
    717717            is required that proxies are enabled for all items that are linked from any of
    718             the batchable items, ie. <classname>RawBioAssay</classname>,
    719             <classname>ReporterType</classname>, <classname>ArrayDesignBlock</classname>, etc.
     718            the batchable items, ie. <classname docapi="net.sf.basedb.core">RawBioAssay</classname>,
     719            <classname docapi="net.sf.basedb.core">ReporterType</classname>, <classname docapi="net.sf.basedb.core">ArrayDesignBlock</classname>, etc.
    720720          </para>
    721721         
     
    872872            where Hibernate can find the name of the table where items of this type are stored.
    873873            The table name should generally be the same as the class name, without the ending
    874             <code>Data</code> and in a plural form. For example <classname>UserData</classname>
     874            <code>Data</code> and in a plural form. For example <classname docapi="net.sf.basedb.core.data">UserData</classname>
    875875            --&gt; <code>Users</code>. The back-ticks (`) around the table name tells Hibernate
    876876            to enclose the name in whatever the actual database manager uses for such things
     
    12741274            are package private. This is required because Hibernate will get confused if
    12751275            we modify both ends. Thus, we are forced to always add/remove users to/from
    1276             the set in the <classname>GroupData</classname> object. The methods in the
    1277             <classname>RoleData</classname> class are never used by us.
     1276            the set in the <classname docapi="net.sf.basedb.core.data">GroupData</classname> object. The methods in the
     1277            <classname docapi="net.sf.basedb.core.data">RoleData</classname> class are never used by us.
    12781278            Note that we do not have to check for null and create a new set since Hibernate
    12791279            will handle null values as an empty set.
     
    15841584          <para>
    15851585            In this case, we use the <code>@hibernate.one-to-one</code> mapping
    1586             in both classes. The <code>constrained="true"</code> tag in <classname>UserData</classname>
     1586            in both classes. The <code>constrained="true"</code> tag in <classname docapi="net.sf.basedb.core.data">UserData</classname>
    15871587            tells Hibernate to always insert the password first, and then the user. The makes it
    15881588            possible to use the (auto-generated) id for the password as the id
  • trunk/doc/src/docbook/developerdoc/plugin_developer.xml

    r3872 r3944  
    296296          <listitem>
    297297            <simpara>
    298               <interfacename>net.sf.basedb.core.plugin.Plugin</interfacename>
     298              <interfacename docapi="net.sf.basedb.core.plugin">net.sf.basedb.core.plugin.Plugin</interfacename>
    299299            </simpara>
    300300          </listitem>
    301301          <listitem>
    302302            <simpara>
    303               <interfacename>net.sf.basedb.core.plugin.InteractivePlugin</interfacename>
     303              <interfacename docapi="net.sf.basedb.core.plugin">net.sf.basedb.core.plugin.InteractivePlugin</interfacename>
    304304            </simpara>
    305305          </listitem>
    306306          <listitem>
    307307            <simpara>
    308               <classname>net.sf.basedb.core.plugin.AbstractPlugin</classname>
     308              <classname docapi="net.sf.basedb.core.plugin">net.sf.basedb.core.plugin.AbstractPlugin</classname>
    309309            </simpara>
    310310          </listitem>
     
    312312       
    313313        A plug-in must always implement the
    314         <interfacename>Plugin</interfacename> interface.
    315         The <interfacename>InteractivePlugin</interfacename>
     314        <interfacename docapi="net.sf.basedb.core.plugin">Plugin</interfacename> interface.
     315        The <interfacename docapi="net.sf.basedb.core.plugin">InteractivePlugin</interfacename>
    316316        interface is optional, and is only needed if you want user interaction.
    317         The <classname>AbstractPlugin</classname> is a useful base class
     317        The <classname docapi="net.sf.basedb.core.plugin">AbstractPlugin</classname> is a useful base class
    318318        that your plug-in can use as a superclass. It provides default implementations
    319319        for some of the interface methods and also has utility methods for
     
    321321        reason to use this class as a superclass is that it will shield your
    322322        plug-in from future changes to the Plug-in API. For example, if
    323         we decide that a new method is needed in the <interfacename>Plugin</interfacename>
     323        we decide that a new method is needed in the <interfacename docapi="net.sf.basedb.core.plugin">Plugin</interfacename>
    324324        interface we will also try to add a default implementation in
    325         the <classname>AbstractPlugin</classname> class.
     325        the <classname docapi="net.sf.basedb.core.plugin">AbstractPlugin</classname> class.
    326326      </para>
    327327 
     
    353353                Return information about the plug-in, i.e. the name, version, and a short
    354354                description about what the plug-in does. The
    355                 <classname>About</classname>
     355                <classname docapi="net.sf.basedb.core.plugin">About</classname>
    356356                object also has fields for naming the author and various other contact
    357357                information. The returned information is copied by the core at
     
    393393              <para>
    394394                Return information about the main type of plug-in. The
    395                 <classname>MainType</classname>
     395                <classname docapi="net.sf.basedb.core.plugin">Plugin.MainType</classname>
    396396                is an enumeration with five possible values:
    397397                <itemizedlist>
     
    457457                If this method returns true, the plug-in can have different
    458458                configurations, (i.e.
    459                 <classname>PluginConfiguration</classname>).
     459                <classname docapi="net.sf.basedb.core">PluginConfiguration</classname>).
    460460                Note that this method may return true even if the
    461                 <interfacename>InteractivePlugin</interfacename>
     461                <interfacename docapi="net.sf.basedb.core.plugin">InteractivePlugin</interfacename>
    462462                interface is not implemented. The
    463                 <classname>AbstractPlugin</classname>
     463                <classname docapi="net.sf.basedb.core.plugin">AbstractPlugin</classname>
    464464                returns true for this method, which is the old way before the
    465465                introduction of this method.
     
    483483                any data.
    484484                The
    485                 <classname>AbstractPlugin</classname>
     485                <classname docapi="net.sf.basedb.core.plugin">AbstractPlugin</classname>
    486486                returns false for this method, which is the old way before the
    487487                introduction of this method.
     
    553553                The parameters passed to this method has vital information that is
    554554                needed to execute the plug-in. The
    555                 <classname>SessionControl</classname>
     555                <classname docapi="net.sf.basedb.core">SessionControl</classname>
    556556                is a central core object holding information about the logged in
    557557                user and is used to create
    558                 <classname>DbControl</classname>
     558                <classname docapi="net.sf.basedb.core">DbControl</classname>
    559559                objects which allows a plug-in to connect to the database to read, add or
    560560                update information. The two
    561                 <classname>ParameterValues</classname>
     561                <classname docapi="net.sf.basedb.core.plugin">ParameterValues</classname>
    562562                objects contain information about the configuration and job
    563563                parameters to the plug-in.
    564564                The <varname>configuration</varname> object holds all parameters stored
    565                 together with a <classname>PluginConfiguration</classname>
     565                together with a <classname docapi="net.sf.basedb.core">PluginConfiguration</classname>
    566566                object in the database. If the plug-in is started without
    567567                a configuration this object is null.
    568568                The <varname>job</varname> object holds all parameters that are
    569                 stored together with a <classname>Job</classname> object in the
     569                stored together with a <classname docapi="net.sf.basedb.core">Job</classname> object in the
    570570                database. This object is null if the plug-in is started without a job.
    571571              </para>
     
    580580              <para>
    581581                The
    582                 <classname>AbstractPlugin</classname>
     582                <classname docapi="net.sf.basedb.core.plugin">AbstractPlugin</classname>
    583583                contains an implementation of this method that saves the passed objects
    584584                in protected instance variables. If you override this method
     
    586586              </para>
    587587              <example id="net.sf.basedb.core.plugin.Plugin.init">
    588                 <title>The <classname>AbstractPlugin</classname> implementation of Plugin.init()</title>
     588                <title>The <classname docapi="net.sf.basedb.core.plugin">AbstractPlugin</classname> implementation of Plugin.init()</title>
    589589<programlisting language="java">
    590590protected SessionControl sc = null;
     
    722722                <title>
    723723                  The
    724                   <classname>AbstractPlugin</classname>
     724                  <classname docapi="net.sf.basedb.core.plugin">AbstractPlugin</classname>
    725725                  contains an implementation of the <methodname>done()</methodname>
    726726                  method simply sets the
     
    752752          this interface. This is probably the case for most plug-ins. Among the core plug-ins
    753753          shipped with BASE the
    754           <classname>SpotImageCreator</classname>
     754          <classname docapi="net.sf.basedb.plugins">SpotImageCreator</classname>
    755755          is one plug-in that does not interact with the user. Instead, the web client has
    756756          special JSP pages that handles all the interaction, creates a job for it and sets
     
    761761        <para>
    762762          The
    763           <interfacename>InteractivePlugin</interfacename>
     763          <interfacename docapi="net.sf.basedb.core.plugin">InteractivePlugin</interfacename>
    764764          has three main tasks:
    765765         
     
    802802                Return information about where the plug-in should be plugged in. Each
    803803                place is identified by a
    804                 <classname>GuiContext</classname>
     804                <classname docapi="net.sf.basedb.core.plugin">GuiContext</classname>
    805805                object, which is an
    806                 <classname>Item</classname>
     806                <classname docapi="net.sf.basedb.core">Item</classname>
    807807                and a
    808                 <classname>Type</classname>.
     808                <classname docapi="net.sf.basedb.core">Type</classname>.
    809809                The item is one of the objects defined by the
    810                 <classname>net.sf.basedb.core.Item</classname>
     810                <classname docapi="net.sf.basedb.core">Item</classname>
    811811                enumeration and the type is either
    812812                <constant>Type.LIST</constant>
     
    834834                The returned information is copied by the core at installation time to
    835835                make it easy to ask for all plug-ins for a certain
    836                 <classname>GuiContext</classname>.
     836                <classname docapi="net.sf.basedb.core.plugin">GuiContext</classname>.
    837837              </para>
    838838              <para>
     
    923923              <para>
    924924                Here is a real example from the
    925                 <classname>RawDataFlatFileImporter</classname>
     925                <classname docapi="net.sf.basedb.plugins">RawDataFlatFileImporter</classname>
    926926                plug-in which imports raw data to a
    927                 <classname>RawBioAssay</classname>.
     927                <classname docapi="net.sf.basedb.core">RawBioAssay</classname>.
    928928               
    929929                Thus,
     
    10111011              <para>
    10121012                Ask the plug-in for parameters that need to be entered by the user. The
    1013                 <classname>GuiContext</classname>
     1013                <classname docapi="net.sf.basedb.core.plugin">GuiContext</classname>
    10141014                parameter is one of the contexts returned by the
    10151015                <methodname>getGuiContexts</methodname>
     
    10181018                plug-in may define its own commands. The two predefined commands are
    10191019                defined in the
    1020                 <classname>net.sf.basedb.core.plugin.Request</classname>
     1020                <classname docapi="net.sf.basedb.core.plugin">net.sf.basedb.core.plugin.Request</classname>
    10211021                class.
    10221022                <variablelist>
     
    10451045                </variablelist>
    10461046                Given this information the plug-in must return a
    1047                 <classname>RequestInformation</classname>
     1047                <classname docapi="net.sf.basedb.core">RequestInformation</classname>
    10481048                object. This is simply a title, a description, and a list of parameters.
    10491049                Usually the title will end up as the input form title and the
     
    11251125              <para>
    11261126                As you can see it takes a lot of code to put together a
    1127                 <classname>RequestInformation</classname>
     1127                <classname docapi="net.sf.basedb.core">RequestInformation</classname>
    11281128                object. For each parameter you need one
    1129                 <classname>PluginParameter</classname>
     1129                <classname docapi="net.sf.basedb.core">PluginParameter</classname>
    11301130                object and one
    1131                 <classname>ParameterType</classname>
     1131                <classname docapi="net.sf.basedb.core">ParameterType</classname>
    11321132                object. To make life a little easier, a
    1133                 <classname>ParameterType</classname>
     1133                <classname docapi="net.sf.basedb.core">ParameterType</classname>
    11341134                can be reused for more than one
    1135                 <classname>PluginParameter</classname>.
     1135                <classname docapi="net.sf.basedb.core">PluginParameter</classname>.
    11361136              </para>
    11371137             
     
    11441144              <para>
    11451145                The
    1146                 <classname>ParameterType</classname>
     1146                <classname docapi="net.sf.basedb.core">ParameterType</classname>
    11471147                is an abstract base class for several subclasses each implementing a
    11481148                specific type of parameter. The list of subclasses may grow in the
     
    11601160                <varlistentry>
    11611161                  <term>
    1162                     <classname>StringParameterType</classname>
     1162                    <classname docapi="net.sf.basedb.core">StringParameterType</classname>
    11631163                  </term>
    11641164                  <listitem>
     
    11711171                <varlistentry>
    11721172                  <term>
    1173                     <classname>FloatParameterType</classname>,
    1174                     <classname>DoubleParameterType</classname>,
    1175                     <classname>IntegerParameterType</classname>,
    1176                     <classname>LongParameterType</classname>
     1173                    <classname docapi="net.sf.basedb.core">FloatParameterType</classname>,
     1174                    <classname docapi="net.sf.basedb.core">DoubleParameterType</classname>,
     1175                    <classname docapi="net.sf.basedb.core">IntegerParameterType</classname>,
     1176                    <classname docapi="net.sf.basedb.core">LongParameterType</classname>
    11771177                  </term>
    11781178                  <listitem>
     
    11851185                <varlistentry>
    11861186                  <term>
    1187                     <classname>BooleanParameterType</classname>
     1187                    <classname docapi="net.sf.basedb.core">BooleanParameterType</classname>
    11881188                  </term>
    11891189                  <listitem>
     
    11941194                <varlistentry>
    11951195                  <term>
    1196                     <classname>DateParameterType</classname>
     1196                    <classname docapi="net.sf.basedb.core">DateParameterType</classname>
    11971197                  </term>
    11981198                  <listitem>
     
    12031203                <varlistentry>
    12041204                  <term>
    1205                     <classname>FileParameterType</classname>
     1205                    <classname docapi="net.sf.basedb.core">FileParameterType</classname>
    12061206                  </term>
    12071207                  <listitem>
     
    12121212                <varlistentry>
    12131213                  <term>
    1214                     <classname>ItemParameterType</classname>
     1214                    <classname docapi="net.sf.basedb.core">ItemParameterType</classname>
    12151215                  </term>
    12161216                  <listitem>
     
    12181218                      Asks for any other item. This parameter type requires
    12191219                      that a list of options is supplied, except when the item
    1220                       type asked for matches the current <classname>GuiContext</classname>, in which
     1220                      type asked for matches the current <classname docapi="net.sf.basedb.core.plugin">GuiContext</classname>, in which
    12211221                      case the currently selected item is used as the
    12221222                      parameter value.
     
    12261226                <varlistentry>
    12271227                  <term>
    1228                     <classname>PathParameterType</classname>
     1228                    <classname docapi="net.sf.basedb.core">PathParameterType</classname>
    12291229                  </term>
    12301230                  <listitem>
     
    12401240              <para>
    12411241                You can also create a
    1242                 <classname>PluginParameter</classname>
     1242                <classname docapi="net.sf.basedb.core">PluginParameter</classname>
    12431243                with a null name and
    1244                 <classname>ParameterType</classname>.
     1244                <classname docapi="net.sf.basedb.core">ParameterType</classname>.
    12451245                In this case, the web client will not ask for input from the user, instead
    12461246                it is used as a section header, allowing you to group parameters into
     
    12971297                the input string is parsed and converted to a
    12981298                <classname>Float</classname>. If you have extended the
    1299                 <classname>AbstractPlugin</classname>
     1299                <classname docapi="net.sf.basedb.core.plugin">AbstractPlugin</classname>
    13001300                class it is very easy to validate the parameters with the
    13011301                <methodname>AbstractPlugin.validateRequestParameters()</methodname>
    13021302                method. This method takes the same list of
    1303                 <classname>PluginParameter</classname>:s
     1303                <classname docapi="net.sf.basedb.core">PluginParameter</classname>:s
    13041304                as used in the
    1305                 <classname>RequestInformation</classname>
     1305                <classname docapi="net.sf.basedb.core">RequestInformation</classname>
    13061306                object and uses that information for validation. It returns null or a
    13071307                list of
     
    13211321              <para>
    13221322                The configure method works much like the <methodname>Plugin.run()</methodname>
    1323                 method. It must return the result in the <classname>Response</classname> object,
     1323                method. It must return the result in the <classname docapi="net.sf.basedb.core.plugin">Response</classname> object,
    13241324                and should not throw any exceptions.
    13251325              </para>
     
    13801380              </para>
    13811381              <para>
    1382                 The <classname>Response</classname> class also has a
     1382                The <classname docapi="net.sf.basedb.core.plugin">Response</classname> class also has a
    13831383                <methodname>setContinue()</methodname>
    13841384                method which tells the core that the plug-in needs more parameters,
     
    14781478        <listitem>
    14791479          <para>
    1480           If the plug-in implements the <interfacename>InteractivePlugin</interfacename>
     1480          If the plug-in implements the <interfacename docapi="net.sf.basedb.core.plugin">InteractivePlugin</interfacename>
    14811481          interface the <methodname>InteractivePlugin.getGuiContexts()</methodname>
    14821482          method is called. This is the only time this method is called and the information it
     
    15001500       
    15011501        <para>
    1502           The plug-in must implement the <interfacename>InteractivePlugin</interfacename>
     1502          The plug-in must implement the <interfacename docapi="net.sf.basedb.core.plugin">InteractivePlugin</interfacename>
    15031503          interface and the <methodname>Plugin.supportsConfigurations()</methodname> method
    15041504          must return <constant>TRUE</constant>. The configuration is done with
     
    15531553          The plug-in must validate the values and decide whether they should be
    15541554          stored in the database or not. We recommend that you use the
    1555           methods in the <classname>AbstractPlugin</classname> class for this.
     1555          methods in the <classname docapi="net.sf.basedb.core.plugin">AbstractPlugin</classname> class for this.
    15561556          </para>
    15571557        </listitem>
     
    16011601       
    16021602        <para>
    1603           If the plug-in is an <interfacename>InteractivePlugin</interfacename>
     1603          If the plug-in is an <interfacename docapi="net.sf.basedb.core.plugin">InteractivePlugin</interfacename>
    16041604          it has specified in which contexts it can be used by the
    16051605          information returned from <methodname>InteractivePlugin.getGuiContexts()</methodname>
     
    17971797          <listitem>
    17981798            <simpara>
    1799             Generate the list of <classname>PluginParameter</classname>
     1799            Generate the list of <classname docapi="net.sf.basedb.core">PluginParameter</classname>
    18001800            objects as usual.
    18011801            </simpara>
     
    18591859            <para>
    18601860              In your JSP page you will probably need to access some information like the
    1861               <classname>SessionControl</classname>, <classname>Job</classname>
    1862               and possible even the <classname>RequestInformation</classname>
     1861              <classname docapi="net.sf.basedb.core">SessionControl</classname>, <classname docapi="net.sf.basedb.core">Job</classname>
     1862              and possible even the <classname docapi="net.sf.basedb.core">RequestInformation</classname>
    18631863              object created by your plug-in.
    18641864            </para>
     
    18981898        Your plug-in can be part of that feature if it reads it data
    18991899        from a single file. It must also implement the
    1900         <interfacename>AutoDetectingImporter</interfacename>
     1900        <interfacename docapi="net.sf.basedb.core.plugin">AutoDetectingImporter</interfacename>
    19011901        interface.
    19021902      </para>
     
    19261926            </para>
    19271927            <para>
    1928               The <classname>AbstractFlatFileImporter</classname> implements this method
     1928              The <classname docapi="net.sf.basedb.plugins">AbstractFlatFileImporter</classname> implements this method
    19291929              by reading the headers from the input stream and checking if
    19301930              it stopped at an unknown type of line or not:
     
    20722072      <title>The AbstractFlatFileImporter superclass</title>
    20732073      <para>
    2074         The <classname>AbstractFlatFileImporter</classname> is a very useful abstract
     2074        The <classname docapi="net.sf.basedb.plugins">AbstractFlatFileImporter</classname> is a very useful abstract
    20752075        class to use as a superclass for your own import plug-ins. It can be used
    20762076        if your plug-in uses regular text files that can be parsed by an instance of the
    2077         <classname>net.sf.basedb.util.FlatFileParser</classname> class. This class parses a file
     2077        <classname docapi="net.sf.basedb.util">net.sf.basedb.util.FlatFileParser</classname> class. This class parses a file
    20782078        by checking each line against a few regular expressions. Depending on which regular
    20792079        expression matches the line, it is classified as a header line, a section line,
     
    20842084     
    20852085      <para>
    2086         The <classname>AbstractFlatFileImporter</classname> defines
    2087         <classname>PluginParameter</classname> objects
     2086        The <classname docapi="net.sf.basedb.plugins">AbstractFlatFileImporter</classname> defines
     2087        <classname docapi="net.sf.basedb.core">PluginParameter</classname> objects
    20882088        for each of the regular expressions and other parameters used by the parser. It also
    20892089        implements the <methodname>Plugin.run()</methodname> method and does most of
    20902090        the ground work for instantiating a <methodname>FlatFileParser</methodname> and
    20912091        parsing the file. What you have to do in your plugin is to put together the
    2092         <classname>RequestInformation</classname> objects
     2092        <classname docapi="net.sf.basedb.core">RequestInformation</classname> objects
    20932093        for configuring the plugin and creating a job and implement the
    20942094        <methodname>InteractivePlugin.configure()</methodname> method for validating and
     
    21112111      <listitem>
    21122112        <para>
    2113         Implement the <interfacename>InteractivePlugin</interfacename> methods.
     2113        Implement the <interfacename docapi="net.sf.basedb.core.plugin">InteractivePlugin</interfacename> methods.
    21142114        See <xref linkend="plugin_developer.api.interfaces.interactive" /> for more information. Note that the
    2115         <classname>AbstractFlatFileImporter</classname>
     2115        <classname docapi="net.sf.basedb.plugins">AbstractFlatFileImporter</classname>
    21162116        has defined many parameters for regular expressions used by the parser
    2117         already. You should just pick them and put in your <classname>RequestInformation</classname>
     2117        already. You should just pick them and put in your <classname docapi="net.sf.basedb.core">RequestInformation</classname>
    21182118        object.
    21192119        </para>
     
    21992199        <listitem>
    22002200          <para>
    2201           The method is called to create a <classname>FlatFileParser</classname>
     2201          The method is called to create a <classname docapi="net.sf.basedb.util.parser">FlatFileParser</classname>
    22022202          and set the regular expressions that should be used for parsing the file.
    22032203          The default implementation assumes that your plug-in has used the built-in
    2204           <classname>PluginParameter</classname> objects and has stored the values
     2204          <classname docapi="net.sf.basedb.core">PluginParameter</classname> objects and has stored the values
    22052205          at the configuration level. You should override this method if you need to
    22062206          initialise the parser in a different way. See for example the
    2207           code for the <classname>PrintMapFlatFileImporter</classname> plug-in which
     2207          code for the <classname docapi="net.sf.basedb.plugins">PrintMapFlatFileImporter</classname> plug-in which
    22082208          has a fixed format and doesn't use configurations.
    22092209          </para>
     
    22482248          if it wants to do more checks, for example, make that a certain header is present
    22492249          with a certain value. It may also continue parsing the file. Here is a code example from
    2250           the <classname>PrintMapFlatFileImporter</classname> which checks if a
     2250          the <classname docapi="net.sf.basedb.plugins">PrintMapFlatFileImporter</classname> which checks if a
    22512251          <constant>FormatName</constant> header is present and contains either
    22522252          <constant>TAM</constant> or <constant>MwBr</constant>.
     
    22882288          begins. Override this method if you need to initialise some
    22892289          internal state. This is, for example, a good place to open
    2290           a <classname>DbControl</classname> object, read parameters from the
     2290          a <classname docapi="net.sf.basedb.core">DbControl</classname> object, read parameters from the
    22912291          job and configuration and put them into more useful variables. The default
    22922292          implementation does nothing, but we recommend that
     
    24912491            Called when the parsing has ended, either because the end of
    24922492            file was reached or because an error has occurred. The subclass
    2493             should close any open resources, ie. the <classname>DbControl</classname>
     2493            should close any open resources, ie. the <classname docapi="net.sf.basedb.core">DbControl</classname>
    24942494            object. The <varname>success</varname> parameter is <constant>true</constant>
    24952495            if the parsing was successful, <constant>false</constant> otherwise.
     
    25572557
    25582558      <para>
    2559         The <classname>AbstractFlatFileImporter</classname> has a lot of
     2559        The <classname docapi="net.sf.basedb.plugins">AbstractFlatFileImporter</classname> has a lot of
    25602560        other methods that you may use and/or override in your own plug-in.
    25612561        Check the javadoc for more information.
     
    25842584        or to download it immediately to the client computer. With the basic
    25852585        plug-in API the second option is not possible. The
    2586         <interfacename>ImmediateDownloadExporter</interfacename> is an
    2587         interface that extends the <interfacename>Plugin</interfacename>
     2586        <interfacename docapi="net.sf.basedb.core.plugin">ImmediateDownloadExporter</interfacename> is an
     2587        interface that extends the <interfacename docapi="net.sf.basedb.core.plugin">Plugin</interfacename>
    25882588        interface to provide this functionality. If your export
    25892589        plug-in wants to provide immediate download functionality it must
    2590         implement the <interfacename>ImmediateDownloadExporter</interfacename>
     2590        implement the <interfacename docapi="net.sf.basedb.core.plugin">ImmediateDownloadExporter</interfacename>
    25912591        interface.
    25922592      </para>
     
    26302630     
    26312631      <para>
    2632         The <classname>ExportOutputStream</classname> is extends
     2632        The <classname docapi="net.sf.basedb.core.plugin">ExportOutputStream</classname> is extends
    26332633        <classname>java.io.OutputStream</classname>. Use the regular
    26342634        <methodname>write()</methodname> methods to write data to it.
     
    27622762        This is an abstract superclass that will make it easier
    27632763        to implement export plug-ins that support immediate
    2764         download. It defines <classname>PluginParameter</classname>
     2764        download. It defines <classname docapi="net.sf.basedb.core">PluginParameter</classname>
    27652765        objects for asking a user about a path where the exported
    27662766        data should be saved and if existing files should be overwritten or not.
     
    27702770        <methodname>ImmediateDownloadExporter.doExport()</methodname> method.
    27712771        Here is what you need to do in your own plug-in code (code examples are
    2772         taken from the <classname>HelpExporter</classname>):
     2772        taken from the <classname docapi="net.sf.basedb.plugins">HelpExporter</classname>):
    27732773      </para>
    27742774     
     
    27762776      <listitem>
    27772777        <para>
    2778           Your plug-in should extend the <classname>AbstractExporterPlugin</classname>
     2778          Your plug-in should extend the <classname docapi="net.sf.basedb.core.plugin">AbstractExporterPlugin</classname>
    27792779          class:
    27802780          <programlisting language="java">
     
    28742874        <para>
    28752875        Implement the <methodname>performExport()</methodname> method.
    2876         This is defined as abstract in the <classname>AbstractExporterPlugin</classname>
     2876        This is defined as abstract in the <classname docapi="net.sf.basedb.core.plugin">AbstractExporterPlugin</classname>
    28772877        class. It has the same parameters as the <methodname>ImmediateDownloadExporter.doExport()</methodname>
    28782878        method and they have the same meaning. The only difference is that the
     
    28922892     
    28932893      <para>
    2894         The call sequence for plug-ins extending <classname>AbstractExporterPlugin</classname>
     2894        The call sequence for plug-ins extending <classname docapi="net.sf.basedb.core.plugin">AbstractExporterPlugin</classname>
    28952895        is:
    28962896      </para>
     
    31533153        This class is an abstract base class. It is a useful
    31543154        class for most analysis plug-ins to inherit from. Its main
    3155         purpose is to define <classname>PluginParameter</classname>
     3155        purpose is to define <classname docapi="net.sf.basedb.core">PluginParameter</classname>
    31563156        objects that are commonly used in analysis plug-ins. This includes:
    31573157      </para>
     
    32003200     
    32013201      <para>
    3202         The <interfacename>net.sf.basedb.core.plugin.AnalysisFilterPlugin</interfacename>
     3202        The <interfacename docapi="net.sf.basedb.core.plugin">net.sf.basedb.core.plugin.AnalysisFilterPlugin</interfacename>
    32033203        is a tagging interface, with no methods, that all analysis plug-ins that only filters
    32043204        data should implement. The benefit is that they will be linked from the
     
    32333233        This plug-in mechanism is not the same as the regular plug-in API.
    32343234        That is, you do not have worry about user interaction or implementing the
    3235         <interfacename>Plugin</interfacename> interface.
     3235        <interfacename docapi="net.sf.basedb.core.plugin">Plugin</interfacename> interface.
    32363236      </para>
    32373237     
     
    33473347          To be able to use external authentication you must create a class
    33483348          that implements the
    3349           <interfacename>net.sf.based.core.authentication.Authenticator</interfacename>
     3349          <interfacename docapi="net.sf.basedb.core.authentication">net.sf.based.core.authentication.Authenticator</interfacename>
    33503350          interface. Specify the name of the class in the <property>auth.driver</property>
    33513351          setting in <filename>base.config</filename> and
     
    34263426            <para>
    34273427            Try to authenticate a login/password combination. The plug-in should return
    3428             an <classname>AuthenticationInformation</classname> object if the
     3428            an <classname docapi="net.sf.basedb.core.authentication">AuthenticationInformation</classname> object if the
    34293429            authentication is successful or throw an exception if not.
    34303430           
     
    35953595          All you have to do to create a secondary storage controller is to
    35963596          create a class that implements the
    3597           <interfacename>net.sf.basedb.core.SecondaryStorageController</interfacename>
     3597          <interfacename docapi="net.sf.basedb.core">net.sf.basedb.core.SecondaryStorageController</interfacename>
    35983598          interface. In your <filename>base.config</filename> file you then specify the
    35993599          class name in the <varname>secondary.storage.driver</varname> setting and its
     
    37633763        Behind the scenes, this support is provided by plug-ins. The standard
    37643764        BASE distribution comes with support for ZIP files
    3765         (<classname>net.sf.basedb.plugins.ZipFileUnpacker</classname>)
    3766         and TAR files (<classname>net.sf.basedb.plugins.TarFileUnpacker</classname>).
     3765        (<classname docapi="net.sf.basedb.plugins">net.sf.basedb.plugins.ZipFileUnpacker</classname>)
     3766        and TAR files (<classname docapi="net.sf.basedb.plugins">net.sf.basedb.plugins.TarFileUnpacker</classname>).
    37673767      </para>
    37683768      <para>
    37693769        To add support for additional compressed formats you have to create a plug-in that
    3770         implements the <interfacename>net.sf.basedb.util.zip.FileUnpacker</interfacename>
     3770        implements the <interfacename docapi="net.sf.basedb.util.zip">net.sf.basedb.util.zip.FileUnpacker</interfacename>
    37713771        interface. The best way to do this is to extend the
    3772         <classname>net.sf.basedb.util.zip.AbstractFileUnpacker</classname> which
    3773         implements all methods in the <interfacename>Plugin</interfacename>
    3774         and <interfacename>InteractivePlugin</interfacename>
     3772        <classname docapi="net.sf.basedb.util.zip">net.sf.basedb.util.zip.AbstractFileUnpacker</classname> which
     3773        implements all methods in the <interfacename docapi="net.sf.basedb.core.plugin">Plugin</interfacename>
     3774        and <interfacename docapi="net.sf.basedb.core.plugin">InteractivePlugin</interfacename>
    37753775        interfaces except <methodname>Plugin.getAbout()</methodname>. This leaves
    37763776        you with the actual unpacking of the files as the only thing to implement.
     
    37843784     
    37853785      <variablelist>
    3786         <title>Methods in the <interfacename>FileUnpacker</interfacename> interface</title>
     3786        <title>Methods in the <interfacename docapi="net.sf.basedb.util.zip">FileUnpacker</interfacename> interface</title>
    37873787        <varlistentry>
    37883788          <term>
     
    38823882              Do not <methodname>close()</methodname> or
    38833883              <methodname>commit()</methodname> the
    3884               <classname>DbControl</classname> passed to this method.
     3884              <classname docapi="net.sf.basedb.core">DbControl</classname> passed to this method.
    38853885              This is done automatically by the
    3886               <classname>AbstractFileUnpacker</classname> or by the web client.
     3886              <classname docapi="net.sf.basedb.util.zip">AbstractFileUnpacker</classname> or by the web client.
    38873887              </para>
    38883888            </listitem>
     
    39213921              the number of bytes read from the <varname>in</varname>
    39223922              stream. If it is not possible by other means the stream can
    3923               be wrapped by a <classname>net.sf.basedb.util.InputStreamTracker</classname>
     3923              be wrapped by a <classname docapi="net.sf.basedb.util">net.sf.basedb.util.InputStreamTracker</classname>
    39243924              object which has a <methodname>getNumRead()</methodname> method.
    39253925              </para>
     
    39673967        BASE has support for compressing and downloading a set of selected files and/or
    39683968        directories. This functionality is provided by a plug-in, the
    3969         <classname>PackedFileExporter</classname>. This plug-in doesn't do the actual
     3969        <classname docapi="net.sf.basedb.plugins">PackedFileExporter</classname>. This plug-in doesn't do the actual
    39703970        packing itself. This is delegated to classes implementing the
    3971         <interfacename>net.sf.basedb.util.zip.FilePacker</interfacename> interface.
     3971        <interfacename docapi="net.sf.basedb.util.zip">net.sf.basedb.util.zip.FilePacker</interfacename> interface.
    39723972      </para>
    39733973     
     
    39753975        BASE ships with a number of packing methods, including ZIP and TAR. To
    39763976        add support for other methods you have to provide an implementation
    3977         of the <interfacename>FilePacker</interfacename>
    3978         interface. Then, create a new configuration for the <classname>PackerFileExporter</classname>
     3977        of the <interfacename docapi="net.sf.basedb.util.zip">FilePacker</interfacename>
     3978        interface. Then, create a new configuration for the <classname docapi="net.sf.basedb.plugins">PackedFileExporter</classname>
    39793979        and enter the name of your class in the configuration wizard.
    39803980      </para>
    39813981     
    39823982      <para>
    3983         The <interfacename>FilePacker</interfacename> interface is not a regular
     3983        The <interfacename docapi="net.sf.basedb.util.zip">FilePacker</interfacename> interface is not a regular
    39843984        plug-in interface (ie. it is not a subinterface to
    3985         <interfacename>Plugin</interfacename>). This means that you don't have to
     3985        <interfacename docapi="net.sf.basedb.core.plugin">Plugin</interfacename>). This means that you don't have to
    39863986        mess with configuration or job parameters. Another difference is that your
    39873987        class must be installed in Tomcat's classpath (ie. in one of the
     
    39913991     
    39923992      <variablelist>
    3993         <title>Methods in the <interfacename>FilePacker</interfacename> interface</title>
     3993        <title>Methods in the <interfacename docapi="net.sf.basedb.util.zip">FilePacker</interfacename> interface</title>
    39943994        <varlistentry>
    39953995          <term>
     
    41354135        check that the supplied files are valid and also to extract
    41364136        metadata from the files. For example, the
    4137         <classname>net.sf.basedb.core.filehandler.CelFileHandler</classname>
     4137        <classname docapi="net.sf.basedb.core.filehandler">net.sf.basedb.core.filehandler.CelFileHandler</classname>
    41384138        is used to check if a file is a valid Affymetrix CEL file and
    41394139        to extract data headers and the number of spots from it.
     
    41424142      <para>
    41434143        The validator and metadata reader plug-ins are not regular plug-ins
    4144         (ie. they don't have to implement the <interfacename>Plugin</interfacename>
     4144        (ie. they don't have to implement the <interfacename docapi="net.sf.basedb.core.plugin">Plugin</interfacename>
    41454145        interface). This means that you don't have to mess with configuration or
    41464146        job parameters. Another difference is that the plug-ins must be installed in
     
    41524152      <para>
    41534153        Validator plug-ins must implement the
    4154         <interfacename>net.sf.basedb.core.filehandler.DataFileHandler</interfacename>
    4155         and <interfacename>net.sf.basedb.core.filehandler.DataValidator</interfacename>
     4154        <interfacename docapi="net.sf.basedb.core.filehandler">net.sf.basedb.core.filehandler.DataFileHandler</interfacename>
     4155        and <interfacename docapi="net.sf.basedb.core.filehandler">net.sf.basedb.core.filehandler.DataValidator</interfacename>
    41564156        interfaces. Metadata reader plug-ins should implement the
    4157         <interfacename>net.sf.basedb.core.filehandler.DataFileHandler</interfacename>
    4158         and <interfacename>net.sf.basedb.core.filehandler.DataFileMetadataReader</interfacename>
     4157        <interfacename docapi="net.sf.basedb.core.filehandler">net.sf.basedb.core.filehandler.DataFileHandler</interfacename>
     4158        and <interfacename docapi="net.sf.basedb.core.filehandler">net.sf.basedb.core.filehandler.DataFileMetadataReader</interfacename>
    41594159        interfaces.
    41604160      </para>
     
    41724172        <title>
    41734173          Always extend the
    4174           <classname>net.sf.basedb.core.filehandler.AbstractDataFileHandler</classname>
     4174          <classname docapi="net.sf.basedb.core.filehandler">net.sf.basedb.core.filehandler.AbstractDataFileHandler</classname>
    41754175          class
    41764176        </title>
     
    41794179          from the caller side, not from the implementor side. Thus, we may
    41804180          add methods to those interfaces in the future without prior notice.
    4181           The <classname>AbstractDataFileHandler</classname> will provide default
     4181          The <classname docapi="net.sf.basedb.core.filehandler">AbstractDataFileHandler</classname> will provide default
    41824182          implementations of the new methods in order to not break existing
    41834183          plug-ins.
     
    41864186     
    41874187      <variablelist>
    4188         <title>Methods in the <interfacename>DataFileHandler</interfacename> interface</title>
     4188        <title>Methods in the <interfacename docapi="net.sf.basedb.core.filehandler">DataFileHandler</interfacename> interface</title>
    41894189        <varlistentry>
    41904190          <term>
     
    42314231     
    42324232      <variablelist>
    4233         <title>Methods in the <interfacename>DataFileValidator</interfacename> interface</title>
     4233        <title>Methods in the <interfacename docapi="net.sf.basedb.core.filehandler">DataFileValidator</interfacename> interface</title>
    42344234        <varlistentry>
    42354235          <term>
     
    42704270
    42714271      <variablelist>
    4272         <title>Methods in the <interfacename>DataFileMetadataReader</interfacename> interface</title>
     4272        <title>Methods in the <interfacename docapi="net.sf.basedb.core.filehandler">DataFileMetadataReader</interfacename> interface</title>
    42734273        <varlistentry>
    42744274          <term>
     
    42874287              Extract metadata from the file. It is up to the plug-in
    42884288              to decide what to extract and how to store it.
    4289               The <classname>CelFileHandler</classname> will, for
     4289              The <classname docapi="net.sf.basedb.core.filehandler">CelFileHandler</classname> will, for
    42904290              example, extract headers and the number of spots from the file
    42914291              and store it with the raw bioassay.
     
    43184318
    43194319      <variablelist>
    4320         <title>Methods in the <classname>AbstractDataFileHandler</classname> class</title>
     4320        <title>Methods in the <classname docapi="net.sf.basedb.core.filehandler">AbstractDataFileHandler</classname> class</title>
    43214321        <varlistentry>
    43224322          <term>
     
    43514351              <methodname>setFile()</methodname>. The
    43524352              <parameter>dataFileTypeId</parameter> is
    4353               the external ID of the <classname>DataFileType</classname>.
     4353              the external ID of the <classname docapi="net.sf.basedb.core">DataFileType</classname>.
    43544354            </para>
    43554355          </listitem>
  • trunk/doc/src/docbook/developerdoc/webservices.xml

    r3921 r3944  
    5656          includes and restrictions on a query before it is executed. For those who intend
    5757          to develop services it is recommended to have a look in javadoc for
    58           <classname>net.sf.basedb.ws.info.QueryOptions</classname>
     58          <classname docapi="net.sf.basedb.ws.info">QueryOptions</classname>
    5959          . This is on the first hand for the service developers but it can be useful for
    6060          client developers to also know that this may be available in some services.
     
    487487          <para>
    488488            Create a new class that extends
    489             <classname>net.sf.basedb.ws.server.AbstractRPCService</classname>
     489            <classname api="net.sf.basedb.ws.server">AbstractRPCService</classname>
    490490          </para>
    491491        </listitem>
  • trunk/doc/src/docbook/userdoc/platforms.xml

    r3940 r3944  
    377377            The name of the Java class that can be used to
    378378            validate if a given file is a valid file of this type.
    379             The class must implement the <interfacename>DataFileValidator</interfacename>
     379            The class must implement the <interfacename docapi="net.sf.basedb.core.filehandler">DataFileValidator</interfacename>
    380380            interface. <nohelp>See <xref linkend="plugin_developer.other.datafiles" />.</nohelp>
    381381          </para>
     
    388388            The name of the Java class that can be used to
    389389            extract metadata from a file of this type.
    390             The class must implement the <interfacename>DataFileMetadataReader</interfacename>
     390            The class must implement the <interfacename docapi="net.sf.basedb.core.filehandler">DataFileMetadataReader</interfacename>
    391391            interface. <nohelp>See <xref linkend="plugin_developer.other.datafiles" />.</nohelp>
    392392          </para>
  • trunk/lib/docbook/custom-styles/docbook/plain/xsl/customized.chunked.xsl

    r3864 r3944  
    272272    <xsl:value-of select="$admon.graphics.extension" />
    273273  </xsl:template>
     274 
     275  <xsl:template match="classname">                 
     276    <xsl:call-template name="inline.monoseq"/>   
     277    <xsl:if test = "@docapi != ''">
     278      <xsl:variable name="packagePath">
     279        <xsl:call-template name="replaceCharsInString">
     280          <xsl:with-param name="stringIn" select="string(@docapi)"/>
     281          <xsl:with-param name="charsIn" select="'.'" />
     282          <xsl:with-param name="charsOut" select="'/'" />
     283        </xsl:call-template>
     284        </xsl:variable>
     285       
     286        <xsl:variable name="cleanClassName">
     287          <xsl:choose>
     288            <xsl:when test="starts-with(., @docapi)">
     289              <xsl:value-of select="substring-after(., concat(@docapi, '.'))" />
     290            </xsl:when>
     291            <xsl:otherwise>
     292              <xsl:value-of select="." />
     293            </xsl:otherwise>
     294          </xsl:choose>                     
     295        </xsl:variable>
     296       
     297        <xsl:variable name="pathtorootdir">
     298          <xsl:call-template name="pathtorootdir" />
     299        </xsl:variable>
     300       
     301        <xsl:text> </xsl:text>
     302      <a>
     303        <xsl:attribute name="href">
     304          <xsl:value-of select="concat('../../../api/',$packagePath,'/',$cleanClassName,'.html')" />
     305        </xsl:attribute>
     306        <xsl:attribute name="title">Javadoc for this class.</xsl:attribute>
     307        <image>
     308          <xsl:attribute name="src">
     309          <xsl:value-of select="concat($pathtorootdir, $admon.graphics.path, 'docapi.gif')"/>
     310          </xsl:attribute>
     311          <xsl:attribute name="border">0</xsl:attribute>
     312        </image>
     313      </a>
     314    </xsl:if>   
     315  </xsl:template>
     316 
     317  <xsl:template match="interfacename">
     318    <xsl:call-template name="inline.monoseq"/>   
     319    <xsl:if test = "@docapi != ''">
     320      <xsl:variable name="packagePath">
     321        <xsl:call-template name="replaceCharsInString">
     322          <xsl:with-param name="stringIn" select="string(@docapi)"/>
     323          <xsl:with-param name="charsIn" select="'.'" />
     324          <xsl:with-param name="charsOut" select="'/'" />
     325        </xsl:call-template>
     326        </xsl:variable>
     327       
     328        <xsl:variable name="cleanClassName">
     329          <xsl:choose>
     330            <xsl:when test="starts-with(., @docapi)">
     331              <xsl:value-of select="substring-after(., concat(@docapi, '.'))" />
     332            </xsl:when>
     333            <xsl:otherwise>
     334              <xsl:value-of select="." />
     335            </xsl:otherwise>
     336          </xsl:choose>                     
     337        </xsl:variable>
     338           
     339        <xsl:variable name="pathtorootdir">
     340          <xsl:call-template name="pathtorootdir" />
     341        </xsl:variable>
     342        <xsl:text> </xsl:text>
     343      <a>
     344        <xsl:attribute name="href">
     345          <xsl:value-of select="concat('../../../api/',$packagePath,'/', $cleanClassName,'.html')" />
     346        </xsl:attribute>
     347        <xsl:attribute name="title">Javadoc for this interface.</xsl:attribute>
     348       
     349        <image>
     350          <xsl:attribute name="src">
     351          <xsl:value-of select="concat($pathtorootdir, $admon.graphics.path, 'docapi.gif')"/>
     352          </xsl:attribute>
     353          <xsl:attribute name="border">0</xsl:attribute>
     354        </image>
     355      </a>
     356    </xsl:if>   
     357  </xsl:template>
     358 
     359  <xsl:template name="replaceCharsInString">
     360      <xsl:param name="stringIn"/>
     361      <xsl:param name="charsIn"/>
     362      <xsl:param name="charsOut"/>
     363      <xsl:choose>
     364      <xsl:when test="contains($stringIn,$charsIn)">
     365          <xsl:value-of select="concat(substring-before($stringIn,$charsIn),$charsOut)"/>
     366          <xsl:call-template name="replaceCharsInString">
     367            <xsl:with-param name="stringIn" select="substring-after($stringIn,$charsIn)"/>
     368            <xsl:with-param name="charsIn" select="$charsIn"/>
     369            <xsl:with-param name="charsOut" select="$charsOut"/>
     370          </xsl:call-template>
     371      </xsl:when>
     372      <xsl:otherwise>
     373          <xsl:value-of select="$stringIn"/>
     374        </xsl:otherwise>
     375      </xsl:choose>
     376  </xsl:template>
    274377
    275378</xsl:stylesheet>
  • trunk/lib/docbook/preprocess/dweiss-docbook-extensions.dtd

    r3756 r3944  
    2828<!ATTLIST include file CDATA #REQUIRED>
    2929
     30<!ATTLIST classname docapi CDATA #IMPLIED>
     31
     32<!ATTLIST interfacename docapi CDATA #IMPLIED>
    3033
    3134<!-- help text element -->
Note: See TracChangeset for help on using the changeset viewer.