From jcouteau@users.nuiton.org Wed May 26 17:20:09 2010
From: jcouteau@users.nuiton.org
To: jaxx-commits@list.nuiton.org
Subject: [Jaxx-commits] r1935 - in trunk/src/site: . rst
Date: Wed, 26 May 2010 17:20:09 +0200
Message-ID: <20100526152009.E5E21159ED@nuiton.codelutin.com>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="===============1053265024232618580=="
--===============1053265024232618580==
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Author: jcouteau
Date: 2010-05-26 17:20:09 +0200 (Wed, 26 May 2010)
New Revision: 1935
Url: http://nuiton.org/repositories/revision/jaxx/1935
Log:
Add doc about contract programming
Added:
trunk/src/site/rst/contractProgramming.rst
Modified:
trunk/src/site/site_fr.xml
Added: trunk/src/site/rst/contractProgramming.rst
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/src/site/rst/contractProgramming.rst (rev 0)
+++ trunk/src/site/rst/contractProgramming.rst 2010-05-26 15:20:09 UTC (rev 1=
935)
@@ -0,0 +1,72 @@
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+Programmation par contrat
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+Comme tout bon d=C3=A9veloppeur Java, vous utilisez r=C3=A9guli=C3=A8rement =
la programmation
+par contrat et la puissance de Java dans votre code en ajoutant des g=C3=A9n=
=C3=A9riques,
+des interfaces,... d=C3=A8s que possible et vous souhaitez retrouver les m=
=C3=AAmes
+m=C3=A9canismes dans JAXX.
+
+Ajout de contrats sur le code g=C3=A9n=C3=A9r=C3=A9
+------------------------------------
+
+Le compilateur JAXX g=C3=A9n=C3=A8re des classes =C3=A0 partir de fichiers J=
AXX mais n'est pas
+capable d'ajouter des contrats sur les objets g=C3=A9n=C3=A9r=C3=A9s, donc i=
nterdit en quelque
+sorte la programmation par contrat.
+
+Pour palier =C3=A0 cette limitation, vous pouvez utiliser l'attribut sp=C3=
=A9cial
+*implements*.
+
+Cet attribut ne doit =C3=AAtre plac=C3=A9 que sur le tag racine d'un fichier=
JAXX et son
+contenu est le nom qualifi=C3=A9 d'un ou plusieurs contrats s=C3=A9par=C3=A9=
s par des virgules.
+::
+
+
+
+
+
+
+
+La classe g=C3=A9n=C3=A9r=C3=A9e aura bien le contrat *java.lang.Comparable*.
+
+Attention a bien impl=C3=A9menter toutes les m=C3=A9thodes du contrat dans l=
es scripts ou
+votre fichier ne compilera pas.
+
+G=C3=A9n=C3=A9rer des classes abstraites
+------------------------------
+
+En utilisant l'attribut abstract et en le positionnant =C3=A0 true, la class=
e g=C3=A9n=C3=A9r=C3=A9e
+est abstraite. ::
+
+
+
+Manipuler les types g=C3=A9n=C3=A9riques
+------------------------------
+
+Il est possible d'utiliser les types g=C3=A9n=C3=A9riques dans JAXX en utili=
sant les
+attributs *genericType* et *superGenericType*.
+
+L'attribut genericType pr=C3=A9cise le type g=C3=A9n=C3=A9rique d'une classe=
. Exemple (fichier
+Parent.jaxx) : ::
+
+
+
+La classe g=C3=A9n=C3=A9r=C3=A9e sera de la forme : ::
+
+ public abstract Parent implements java.lang.Comparable {
+ ...
+ }
+
+Pour surcharger une telle classe, on utilise l'attibut *superGenericType* en=
lui
+donnant le type =C3=A0 utiliser. Par exemple (fichier Son.jaxx) : ::
+
+
+
+La classe g=C3=A9n=C3=A9r=C3=A9e sera de la forme : ::
+
+ public Son extends Parent {
+ ...
+ }
\ No newline at end of file
Modified: trunk/src/site/site_fr.xml
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/src/site/site_fr.xml 2010-05-26 14:58:33 UTC (rev 1934)
+++ trunk/src/site/site_fr.xml 2010-05-26 15:20:09 UTC (rev 1935)
@@ -63,9 +63,9 @@
-
-
+
-
+
+
-
--===============1053265024232618580==--