Применение доклетов в приложениях J2C

Добавление тегов в исходный код Java приложений J2C позволяет использовать обеспечить поддержку доклетов J2C.

Теги доклетов - это теги программирования аннотаций, обеспечивающие расширяемый механизм создания артефактов приложений, готовых к развертыванию в среде J2EE. При добавлении тегов доклетов в исходный код Java приложения J2C эти артефакты создаются автоматически (при сохранении с помощью клавиш CTRL-S).
Теги доклетов вставляются в исходный код Java в качестве комментариев Javadoc и содержат атрибуты Область (фрагмент кода, в котором расположен тег) и Множественность (частота использования тега).

Поддерживаемые теги доклетов:

В ходе разработки приложений J2C в исходный код Java можно добавлять теги следующих типов:
  • Теги J2C
  • Теги описания типа:

Атрибуты тегов доклетов

  1. Область: Задает расположение тегов в исходном файле Java. В качестве области действия можно пакет, класс, метод или поле.
    • Пакет

      Добавляется в комментарий к пакету. Информация из этой области применима к пакету Java, модулю или приложению в целом.

    • Класс

      Добавляется в комментарий к классу. Содержит информацию о типе Java или интерфейсе.

    • Метод

      Добавляется в комментарий к отдельному методу класса. Содержит информацию о методе из класса.

    • Поле

      Добавляется в комментарий к отдельному полю класса. Содержит информацию о поле из класса.

  2. Множественность: Указывает, сколько раз конкретный тег может встречаться в одном исходном файле Java. Множественность указывается в скобках после имени тега.
    • 0..1: тег может встречаться в исходном файле Java не более одного раза.
    • 0..n: тег может встречаться в исходном файле Java произвольное число раз.
Пример: Следующий пример заимствован из учебника Многосегментный вывод IMS:
  1. В окне Структура проектов разверните проект, разверните раздел Ресурсы Java, затем разверните раздел JavaSource.
  2. Щелкните на пакете (sample.ims) правой кнопкой мыши и выберите Создать > Класс для запуска мастера Создать класс.
  3. Введите CCIBuffer в качестве имени класса. Примите все значения по умолчанию.
  4. Нажмите кнопку Готово. Класс CCIBuffer будет открыт в редакторе Java.
  5. В раздел комментария класса CCIBuffer добавьте тег @type-descriptor.message-buffer:

    Добавление тега доклета

  6. Нажмите CTRL-S для сохранения изменений. Автоматически создается файл CCIBuffer.java, содержащий следующий исходный код:
    /*
     * Создано: 13 октября 2004 г.
     *
     * TODO Для изменения шаблона этого сгенерированного файла выберите пункт меню
     * Окно - Параметры - Java - Стиль кода - Шаблоны кода
     */
    package sample.ims;
    
    /**
     * @author ivyho
     *
     * TODO Для изменения шаблона этого сгенерированного типа выберите пункт меню
     * Окно - Параметры - Java - Стиль кода - Шаблоны кода
     * @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;
    	}
    
    }

Комментарии