L'ajout de balises au code source
Java
dans les applications J2C vous permet d'utiliser
la fonction doclet de J2C.
Les balises doclet sont des balises permettant d'effectuer une
programmation basée sur les commentaires et qui offrent un mécanisme de
traitement extensible pour la création d'artefacts d'application prêts pour
être déployés dans un environnement J2EE. Lorsque vous ajoutez des balises
Doclet au code source
Java
de votre application J2C, ces artefacts sont générés automatiquement
(dès que vous appuyez sur CTRL-S pour sauvegarder).
Les balises sont insérées dans votre source
Java
en tant que commentaires de style Javadoc. Les attributs de ces balises
incluent la portée (emplacement de la balise dans votre code) et
la multiplicité (nombre de fois où une balise peut-être utilisée).
Balises
Doclet prises en charge.
Vous pouvez ajouter à votre code source
Java les
types
de balises suivants lors du développement d'applications J2C :
- Balises J2C
- Balises de type descripteur
Attributs de balises Doclet
- Portée : la portée correspond à l'emplacement des balises dans le
fichier source
Java. Il
existe quatre options valides pour la portée : package, classe, méthode et
zone.
- Package
Ajouté au commentaire concernant le package. Cette
portée fournit des informations
applicable à l'ensemble du package
Java,
au module ou à l'application dans son ensemble.
- Classe
Ajouté au commentaire concernant la classe. Cette portée
fournit des informations
concernant le type ou l'interface
Java
dans son ensemble.
- Méthode
Ajouté au commentaire concernant une méthode donnée au
sein de la
classe. Cette portée fournit des informations concernant la méthode
référencée au sein de la classe.
- Zone
Ajouté au commentaire concernant une zone donnée au sein de
la classe. Cette portée fournit des informations concernant la zone référencée
au sein de la classe.
- Multiplicité: la multiplicité correspond au nombre de fois
où une balise donnée peut apparaître dans un fichier source
Java. Dans
la notation Doclet, la multiplicité est indiquée entre
parenthèses après le nom de la balise
- 0..1: la balise ne peut pas être utilisée ou une fois
seulement dans le fichier source
Java.
- 0..n: la balise ne peut pas être utilisée ou l'être un nombre de
fois infini dans un fichier source
Java.
Exemple : l'exemple suivant est tiré du tutoriel
Sortie
de multisegments IMS :
- Dans la vue Explorateur de projets, développez votre projet puis les
Ressources et enfin la section
JavaSource.
- Cliquez avec le bouton droit de la souris sur le package (sample.ims dans
notre exemple)
puis sélectionnez Nouveau >
Classe pour
lancer l'assistant de la Nouvelle classe.
- Saisissez CCIBuffer comme nom de classe. Acceptez les
paramètres par défaut.
- Cliquez sur Terminer. La classe CCIBuffer
s'ouvre dans l'éditeur
Java.
- Dans la section commentaire de la classe CCIBuffer, ajoutez la balise
@type-descriptor.message-buffer, comme indiqué ci-dessous :
- Appuyez sur les touches CTRL-S pour enregistrer les changements effectués. Le
code suivant sera généré automatiquement dans le fichier de la classe Java
CCIBuffer :
/*
* Created on Oct 13, 2004
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package sample.ims;
/**
* @author ivyho
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
* @type-descriptor.message-buffer
*/
public class CCIBuffer implements javax.resource.cci.Record,
javax.resource.cci.Streamable, com.ibm.etools.marshall.RecordBytes {
private byte[] buffer_ = null;
/**
* @generated
*/
public CCIBuffer() {
return;
}
/**
* @generated
* @see javax.resource.cci.Record#getRecordShortDescription()
*/
public String getRecordShortDescription() {
return (this.getClass().getName());
}
/**
* @generated
* @see javax.resource.cci.Record#hashCode()
*/
public int hashCode() {
return (super.hashCode());
}
/**
* @generated
* @see javax.resource.cci.Streamable#write(OutputStream)
*/
public void write(java.io.OutputStream outputStream)
throws java.io.IOException {
outputStream.write(buffer_);
}
/**
* @generated
* @see javax.resource.cci.Record#setRecordShortDescription(String)
*/
public void setRecordShortDescription(String shortDescription) {
return;
}
/**
* @generated
*/
public int getSize() {
if (buffer_ != null)
return (buffer_.length);
else
return (0);
}
/**
* @generated
* @see java.lang.Object#toString
*/
public String toString() {
StringBuffer sb = new StringBuffer(super.toString());
sb.append("\n");
com.ibm.etools.marshall.util.ConversionUtils.dumpBytes(sb, buffer_);
return (sb.toString());
}
/**
* @generated
* @see javax.resource.cci.Record#getRecordName()
*/
public String getRecordName() {
return (this.getClass().getName());
}
/**
* @generated
*/
public byte[] getBytes() {
return (buffer_);
}
/**
* @generated
* @see javax.resource.cci.Record#clone()
*/
public Object clone() throws CloneNotSupportedException {
return (super.clone());
}
/**
* @generated
* @see javax.resource.cci.Record#setRecordName(String)
*/
public void setRecordName(String recordName) {
return;
}
/**
* @generated
* @see javax.resource.cci.Record#equals()
*/
public boolean equals(Object object) {
return (super.equals(object));
}
/**
* @generated
* @see javax.resource.cci.Streamable#read(InputStream)
*/
public void read(java.io.InputStream inputStream)
throws java.io.IOException {
byte[] input = new byte[inputStream.available()];
inputStream.read(input);
buffer_ = input;
}
/**
* @generated
*/
public void setBytes(byte[] bytes) {
buffer_ = bytes;
}
}