L'aggiunta di tag al codice di origine Java in applicazioni J2C consente di utilizzare la funzione
doclet J2C.
Le tag doclet sono tag di programmazione annotazioni che forniscono un meccanismo di elaborazione estensibile per la generazione di risorse dell'applicazione pronte da sviluppare in un ambiente J2EE. Quando vengono aggiunte tag doclet al codice di origine Java in un'applicazione
J2C, queste risorse vengono generate automaticamente (una volta che viene premuto CTRL-S per effettuare il salvataggio).
Le tag doclet vengono inserite nell'origine Java come commento in stile Javadoc. Gli attributi di tag di programmazione basate su annotazioni comprendono Ambito (l'ambito in cui risiede la tag nel codice) e Molteplicità (frequenza di utilizzo della tag).
Tag doclet supportate:
sono disponibili i seguenti tipi di tag da aggiungere al codice di origine Java nello sviluppo di applicazioni J2C:
- Tag J2C
- Tag descrittore di tipo:
attributi tag doclet
- Ambito: si riferisce al percorso delle tag nel file di origine Java. Opzioni ambito valide sono pacchetto, classe, metodo e campo.
- Pacchetto
Aggiunto al commento pacchetto. Quest'ambito fornisce informazioni applicabili all'intero pacchetto Java, al modulo o all'applicazione globale.
- Classe
Aggiunta al commento classe. Quest'ambito fornisce informazioni sull'interfaccia o sul tipo Java globale.
- Metodo
Aggiunto ai commenti di un metodo particolare nella classe. Quest'ambito fornisce informazioni sul metodo a cui si fa riferimento nella classe.
- Campo
Aggiunto ai commenti di un campo particolare nella classe. Quest'ambito fornisce informazioni specifiche al campo a cui si fa riferimento nella classe.
- Molteplicità: si riferisce al numero di volte per cui una tag particolare può apparire nel file di origine Java. Nella notazione doclet, la molteplicità viene indicata tra parentesi seguita dal nome della tag
- 0..1: indica che la tag può non essere utilizzata o può essere utilizzata una sola volta in un file di origine Java.
- 0..n: indica che la tag può non essere utilizzata o può essere utilizzata per un numero infinito di volte in un file di origine Java.
Esempio: il seguente esempio deriva dall'esercitazione
IMS Multisegment
Output:
- Nella vista Esplora progetti, espandere un progetto, espandere Risorse Java e la sezione JavaSource.
- Fare clic con il pulsante destro del mouse sul pacchetto (in questo caso sample.ims) e selezionare Nuovo > Classe per avviare la procedura guidata
Nuova classe.
- Immettere CCIBuffer come nome classe. Accettare tutte le impostazioni predefinite.
- Facendo clic su Fine viene aperta la classe CCIBuffer nell'editor Java.
- Nella sezione di commento della classe CCIBuffer, aggiungere la tag @type-descriptor.message-buffer,
nel modo seguente:
- Premere CTRL-S per salvare le modifiche. Verrà generato automaticamente il seguente codice nel file della 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;
}
}