Utilisation de doclets dans les applications J2C

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

  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.
    • 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.

  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
    • 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 :
  1. Dans la vue Explorateur de projets, développez votre projet puis les Ressources et enfin la section JavaSource.
  2. 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.
  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 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;
    	}
    
    }

Vos commentaires