Synopsis

9.1. Synopsis de classe


ClassSynopsis = ( ( OOClass |
                    OOInterface |
                    OOException
                  )+,
                  ( ClassSynopsisInfo |
                    FieldSynopsis|
                    ConstructorSynopsis |
                    DestructorSynopsis |
                    MethodSynopsis
                  )*
                )

OOClass = (Modifier*, ClassName)

OOInterface = (Modifier*, InterfaceName)

OOException = (Modifier*, ExceptionName)

ClassName = ( #PCDATA |
              Replaceable |
              InlineGraphic |
              InlineMediaObject |
              IndexTerm
            )*

InterfaceName = ( #PCDATA |
                  Replaceable |
                  InlineGraphic |
                  InlineMediaObject |
                  IndexTerm
                )*
ExceptionName = ( #PCDATA |
                  Replaceable |
                  InlineGraphic |
                  InlineMediaObject |
                  IndexTerm
                )*

FieldSynopsis = ( Modifier*,
                  Type?,
                  VarName,
                  Initializer?
                )

ConstructorSynopsis = ( Modifier*,
                        MethodName?,
                        ( MethodParam+ | Void ),
                        ExceptionName*
                      )

DestructorSynopsis = ( Modifier*,
                       MethodName?,
                       ( MethodParam+ | Void ),
                       ExceptionName*
                     )

MethodSynopsis = ( Modifier*,
                   ( Type | Void )?,
                   MethodName,
                   ( MethodParam+ | Void ),
                   ExceptionName*,
                   Modifier*
                 )

Modifier = ( #PCDATA |
             Replaceable |
             InlineGraphic |
             InlineMediaObject |
             IndexTerm
           )*

Type = ( ( #PCDATA |
           Replaceable |
           InlineGraphic |
           InlineMediaObject |
           IndexTerm
         )+
       )

VarName = ( ( #PCDATA |
              Replaceable |
              InlineGraphic |
              InlineMediaObject |
              IndexTerm
            )+
          )

Initializer = ( ( #PCDATA |
                  Replaceable |
                  InlineGraphic |
                  InlineMediaObject |
                  IndexTerm
                )+
              )

MethodName = ( #PCDATA |
               Replaceable |
               InlineGraphic |
               InlineMediaObject |
               IndexTerm
             )*

MethodParam = ( Modifier*,
                Type?,
                ( ( Parameter , Initializer? ) |
                  FuncParams
                ),
                Modifier*
              )

Void = EMPTY

ExceptionName = ( #PCDATA |
                  Replaceable |
                  InlineGraphic |
                  InlineMediaObject |
                  IndexTerm
                )*

Éléments : ClassSynopsis, OOClass, OOInterface, OOException, ClassSynopsisInfo, FieldSynopsis, ConstructorSynopsis, DestructorSynopsis, MethodSynopsis, Modifier, ClassName, InterfaceName, ExceptionName, Type, VarName, Initializer, MethodName, MethodParam, Void, Replaceable, InlineGraphic, InlineMediaObject, IndexTerm, Parameter, FuncParams. Attributs : Language, Class, Choice, Rep.

L'élément ClassSynopsis permet de donner la définition d'une classe pour un langage orienté objet comme Java, C++, IDL et Python.

Il n'est pas nécessaire de fournir la ponctuation pour le rendu final de la définition de la classe. L'élément ClassSynopsis permet de définir une classe indépendemment d'un langage orienté objet, et l'application de traitement pourra alors rendre différemment cette définition de classe selon le langage désiré.

L'élément ClassSynopsis permet de définir soit une classe, soit une interface. Pour cela, il faut utiliser l'attribut Class, qui peut prendre les valeurs Class et Interface. La valeur Class est prise par défaut.

De plus, l'attribut Language de ClassSynopsis permet de donner le langage de programmation objet pour lequel cette définition doit être rendue. DocBook ne donne pas de valeurs particulières pour cet attribut. C'est à l'application de traitement de spécifier la liste des langages possibles, ainsi que le langage par défaut.

L'élément ClassSynopsis contient pour commencer un ou plusieurs des éléments OOClass, OOInterface et OOException. Ces éléments permettent de définir la classe, les superclasses, les interfaces implémentées et les exceptions levées par la classe dans le cas de la définition d'une classe, ou l'interface dans le cas de la définition d'une interface.

Chacun de ces éléments OOClass, OOInterface et OOException contiennent un nombre quelconque de modificateurs (Modifier), suivis, respectivement, de l'élément ClassName, InterfaceName ou ExceptionName.

Les éléments Modifier, ClassName, InterfaceName et ExceptionName contiennent un nombre quelconque d'éléments suivants :

L'élément ClassSynopsis contient ensuite des métainformations pour un synopsis de classe ClassSynopsisInfo (see le chapitre intitulé Métainformations).

Viennent ensuite les définitions des champs, des constructeurs, du destructeur et des méthodes de la classe, respectivement représentés par FieldSynopsis, ConstructorSynopsis, DestructorSynopsis et MethodSynopsis. Chaque synopsis de classe peut contenir un nombre quelconque de ces éléments dans un ordre quelconque.

Une définition de champ FieldSynopsis est constitué :

Les définitions de constructeurs et de destructeurs sont constitués :

Dans les divers langages objet, les constructeurs et destructeurs portent généralement le nom de la classe. Il n'est donc pas obligatoire de déclarer le nom de la méthode dans ce cas-là.

Une définition de méthode est constituée :

Les éléments Type, VarName, Initializer contiennent un ou plusieurs éléments suivants :

Les éléments MethodName et ExceptionName contiennent un nombre quelconque d'éléments suivants :

Un paramètre de méthode (MethodParam) est constitué :

<classsynopsis language="java" class="interface">
  <oointerface>
    <modifier>public</modifier>
    <interfacename>Figure</interfacename>
  </oointerface>

  <fieldsynopsis>
    <type>int</type>
    <varname>dimensions</varname>
  </fieldsynopsis>

  <methodsynopsis>
    <modifier>public</modifier>
    <modifier>abstract</modifier>
    <void>
    <methodname>Dessine</methodname>
    <void>
  </methodsynopsis>
</classsynopsis>

public interface Figure {
int dimensions;

public abstract void Dessine ();
}

<classsynopsis language="java" class="interface">
  <oointerface>
    <modifier>public</modifier>
    <interfacename>FigurePlane</interfacename>
  </oointerface>
  <oointerface>
    <interfacename>Figure</interfacename>
  </oointerface>

  <fieldsynopsis>
    <type>int</type>
    <varname>dimensions</varname>
    <initializer>2</initializer>
  </fieldsynopsis>

  <methodsynopsis>
    <modifier>public</modifier>
    <modifier>abstract</modifier>
    <void>
    <methodname>Dessine</methodname>
    <void>
  </methodsynopsis>
</classsynopsis>
public interface FigurePlane
extends Figure {
int dimensions = 2;
public abstract void Dessine ();
}

<classsynopsis language="java" class="class">
  <ooclass>
    <modifier>public</modifier>
    <classname>Rectangle</classname>
  </ooclass>
  <oointerface>
    <interfacename>FigurePlane</interfacename>
  </oointerface>

  <constructorsynopsis>
    <methodname>Rectangle</methodname>
    <methodparam>
      <type>int</type>
      <parameter>largeur</parameter>
    </methodparam>
    <methodparam>
      <type>int</type>
      <parameter>hauteur</parameter>
    </methodparam>
  </constructorsynopsis>
</classsynopsis>

public class Rectangle
implements FigurePlane {

Rectangle (int largeur, int hauteur);

}
<classsynopsis language="java" class="class">
  <ooclass>
    <modifier>public</modifier>
    <classname><replaceable>nom_classe</replaceable></classname>
  </ooclass>
  <oointerface>
    <interfacename><replaceable>nom_interface</replaceable></interfacename>
  </oointerface>

  <constructorsynopsis>
    <methodname><replaceable>nom_classe</replaceable></methodname>
    <methodparam>
      <type><replaceable>type</replaceable></type>
      <parameter><replaceable>argument1</replaceable></parameter>
    </methodparam>
    <methodparam>
      <type><replaceable>type</replaceable></type>
      <parameter><replaceable>argument2</replaceable></parameter>
    </methodparam>
  </constructorsynopsis>
</classsynopsis>

public class nom_classe
implements nom_interface {

nom_classe (type argument1, type argument2);

}