Editando Código-fonte Usando Doclets J2C

É possível incluir o código-fonte Java™ em aplicativos J2C para utilizar a funcionalidade doclet J2C.

Antes de Iniciar

Tags doclet são tags de programação de anotação que fornecem um mecanismo de processamento extensível para gerar artefatos de aplicativo que estão prontos para serem implementados em um ambiente Java EE. Quando você inclui tags doclet no código-fonte Java no aplicativo J2C, esses artefatos são gerados automaticamente (após você pressionar CTRL+S para salvar).

Sobre Esta Tarefa

Tags doclet são inseridas na origem Java como comentários no estilo Javadoc. Os atributos de tags de programação baseada em anotação incluem escopo (em que a tag está em seu código) e multiplicidade (a frequência com que uma tag pode ser usada).

Tags doclet suportadas:

Os tipos de tag a seguir estão disponíveis para você incluir no código-fonte Java ao desenvolver aplicativos J2C:
  • Tags J2C
  • Tags de descritor de tipo:

Atributos de Tag Doclet

Procedimento

  1. Escopo: Escopo refere-se ao local das tags dentro do arquivo de origem Java. Quatro opções de escopo válidas são: package, class, method e field.
    Tabela 1. Atributos de Escopo
    Atributos Definição
    Pacote Incluído no comentário do pacote. Este atributo de escopo fornece informações aplicáveis ao pacote Java inteiro, ao módulo ou ao aplicativo como um todo.
    Classe Incluído no comentário da classe. Este atributo de escopo fornece informações sobre o tipo ou a interface Java como um todo.
    Método Incluído nos comentários de um determinado método dentro da classe. Este atributo de escopo fornece informações sobre o método referenciado dentro da classe.
    Field Incluído nos comentários de um determinado campo dentro de uma classe. Este atributo de escopo fornece informações específicas para o campo referenciado dentro da classe.
  2. Multiplicidade: Multiplicidade refere-se ao número de vezes que uma determinada tag aparece em um arquivo de origem Java. Na notação doclet, a multiplicidade é indicada entre parênteses após o nome da tag.
    Tabela 2. Multiplicidade
    Cabeçalho Cabeçalho
    0..1 Indica que a tag pode ser usada zero ou mais vezes em um arquivo de origem Java.
    0..n Indica que a tag pode ser usada zero ou um número infinito de vezes em um arquivo de origem Java.

Resultados

Exemplo

Exemplo: O exemplo a seguir é derivado do tutorial Saída Multissegmentos do IMS:
  1. Na visualização Enterprise Explorer, expanda seu projeto, expanda Recursos Java e expanda a seção JavaSource.
  2. Clique com o botão direito do mouse no arquivo do pacote Java (sample.ims, nesse caso) e selecione Novo > Classe para ativar o assistente Nova Classe.
  3. Digite CCIBuffer como nome da classe. Aceite todas as configurações padrão.
  4. Clique em Concluir e a classe CCIBuffer é aberta no editor Java.
  5. Na seção de comentário da classe CCIBuffer, inclua a tag @type-descriptor.message-buffer desta forma:

    Incluir tag doclet

  6. Pressione CTRL+S para salvar as mudanças. O código a seguir é gerado automaticamente no arquivo 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;
    	}
    
    }

Feedback