Edition de code source à l'aide de doclets J2C

L'ajout de code au code source Java™ dans les applications J2C vous permet d'utiliser la fonction doclet de J2C.

Avant de commencer

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 Java EE. 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 enregistrer le code modifié).

Pourquoi et quand exécuter cette tâche

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

Procédure

  1. 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.
    Tableau 1. Attributs de portée
    Attributs Définition
    Package Ajouté au commentaire concernant le package. Cet attribut de portée fournit des informations applicable au package Java entier, au module ou à l'application dans son ensemble.
    Classe Ajouté au commentaire concernant la classe. Cet attribut de 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. Cet attribut de 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. Cet attribut de portée fournit des informations concernant la zone référencée au sein de la classe.
  2. 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.
    Tableau 2. Multiplicité
    En-tête En-tête
    0..1 Indique que la balise peut être utilisée zéro ou une fois dans un fichier source Java.
    0..n Indique que la balise peut être utilisée zéro ou un nombre de fois illimité dans un fichier source Java.

Résultats

Exemple

Exemple : l'exemple suivant est tiré du tutoriel Sortie de multisegments IMS :
  1. Dans la vue Explorateur d'entreprise, développez votre projet puis les Ressources et enfin la section JavaSource.
  2. Cliquez avec le bouton droit sur le fichier du package Java (sample.ims dans notre exemple) et sélectionnez Nouveau > Classe pour lancer l'assistant Nouvelle classe.
  3. Saisissez CCIBuffer comme nom de classe. Acceptez les paramètres par défaut.
  4. Cliquez sur Terminer. La classe CCIBuffer s'ouvre dans l'éditeur Java.
  5. Dans la section commentaire de la classe CCIBuffer, ajoutez la balise @type-descriptor.message-buffer, comme indiqué ci-dessous :

    Ajouter la balise doclet

  6. Appuyez sur Ctrl+S pour enregistrer les changements effectués. Le code suivant est généré automatiquement dans le fichier de classe CCIBuffer.java :
    /*
     * 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;
    	}
    
    }

Commentaires