package net.katsuster.strview.media;

import net.katsuster.strview.util.*;

/**
 * <p>
 * ヘッダ、本体、フッタの 3つの要素から構成されるデータの塊
 * （パケット）を表すインタフェースです。
 * </p>
 *
 * <p>
 * 実装する際は PacketAdapter クラスを継承すると便利です。
 * </p>
 *
 * @see PacketAdapter
 * @author katsuhiro
 */
public interface Packet extends Block {
    /**
     * <p>
     * パケットの短い名前を取得します。
     * </p>
     *
     * <p>
     * クラス名 Class.getCanonicalName() を返すか、
     * より適切な名前を返すことが推奨されます。
     * </p>
     *
     * @return パケットの短い名前
     */
    public String getShortName();

    /**
     * <p>
     * パケットの存在する範囲を取得します。
     * </p>
     *
     * @return データの範囲
     */
    @Override
    public PacketRange getRange();

    /**
     * <p>
     * タグ本体に別のタグを含められるかどうかを返します。
     * </p>
     *
     * @return タグ本体に別のタグを含められる場合は true、
     * 含められない場合は false
     */
    public boolean isRecursive();

    /**
     * <p>
     * パケットのヘッダを取得します。
     * </p>
     *
     * @return パケットのヘッダ
     */
    public Block getHeader();

    /**
     * <p>
     * パケット本体のビット列を取得します。
     * </p>
     *
     * @return パケット本体のビット列
     */
    public LargeBitList getBody();

    /**
     * <p>
     * パケットのフッタを取得します。
     * </p>
     *
     * @return パケットのフッタ
     */
    public Block getFooter();

    /**
     * <p>
     * パケット全体を表すビット列を取得します。
     * </p>
     *
     * @return ビット列
     */
    public LargeBitList getRawPacket();
}

@@ -692,25 +692,29 @@
 %0A     * 
-%E3%82%BF%E3%82%B0
+%E3%83%91%E3%82%B1%E3%83%83%E3%83%88
 %E6%9C%AC%E4%BD%93%E3%81%AB%E5%88%A5%E3%81%AE
-%E3%82%BF%E3%82%B0
+%E3%83%91%E3%82%B1%E3%83%83%E3%83%88
 %E3%82%92%E5%90%AB%E3%82%81%E3%82%89%E3%82%8C%E3%82%8B%E3%81%8B%E3%81%A9
@@ -760,17 +760,21 @@
 urn 
-%E3%82%BF%E3%82%B0
+%E3%83%91%E3%82%B1%E3%83%83%E3%83%88
 %E6%9C%AC%E4%BD%93%E3%81%AB%E5%88%A5%E3%81%AE
-%E3%82%BF%E3%82%B0
+%E3%83%91%E3%82%B1%E3%83%83%E3%83%88
 %E3%82%92%E5%90%AB%E3%82%81%E3%82%89

Fix javadoc.