パッケージ com.lmt.lib.bms

クラス BmsNote

  • すべての実装されたインタフェース:
    BmsAt, BmsChx, Comparable<BmsAddress>

    public class BmsNote
    extends BmsTimelineElement
    タイムライン要素の一つであるノートの情報を表します。

    情報には、アドレス、およびノートが示す値の2つが存在します。当クラスの情報は変更不可であり、 BMSライブラリの外部から情報の変更が加えられることを想定していません。

    関連項目:
    BmsTimelineElement
    • フィールドの詳細

      • DEFAULT_CREATOR

        public static final Supplier<BmsNote> DEFAULT_CREATOR
        デフォルトのノートオブジェクト生成器。
      • TEST_OK

        public static final Predicate<BmsNote> TEST_OK
        常に検査合格とするテスター。
      • TEST_FAIL

        public static final Predicate<BmsNote> TEST_FAIL
        常に検査不合格とするテスター。
    • コンストラクタの詳細

      • BmsNote

        public BmsNote()
        ノートオブジェクトを新しく構築します。

        標準のノートオブジェクトでは、ノートの値・チャンネル番号・チャンネルインデックス・小節番号・小節内の刻み位置を 保有します。これらの情報はBmsContentからのみ設定されることを想定しており、BMSライブラリの外部から値を 更新するためのインターフェイスは用意されていません。ただし、クラスを拡張してノートオブジェクトに付加的な情報 を挿入することは可能です。

        ノートオブジェクトを構築しただけではonCreate()は呼び出されません。

    • メソッドの詳細

      • toString

        public String toString()
        チャンネル番号、インデックス、小節番号、刻み位置、値が分かる形式の文字列を返します。
        オーバーライド:
        toString クラス内 BmsAddress
        戻り値:
        チャンネル番号、インデックス、小節番号、刻み位置、値が分かる形式の文字列
      • getValue

        public final int getValue()
        ノートに割り当てられた値を取得します。

        ノートの値は BmsSpec.VALUE_MINBmsSpec.VALUE_MAX の範囲の値を示しますが、0を示すことはありません。

        戻り値:
        ノートの値
      • getValueAsLong

        public long getValueAsLong()
        ノートに割り当てられた値をlong型にキャストして取得します。

        ノートに割り当てられた値を参照する際は可能であればgetValue()を使用することを推奨します。

        オーバーライド:
        getValueAsLong クラス内 BmsTimelineElement
        戻り値:
        ノートに割り当てられた値
      • getValueAsDouble

        public double getValueAsDouble()
        ノートに割り当てられた値をdouble型にキャストして取得します。

        ノートに割り当てられた値を参照する際は可能であればgetValue()を使用することを推奨します。

        オーバーライド:
        getValueAsDouble クラス内 BmsTimelineElement
        戻り値:
        ノートに割り当てられた値
      • getValueAsString

        public String getValueAsString()
        ノートに割り当てられた値の文字列表現を取得します。
        オーバーライド:
        getValueAsString クラス内 BmsTimelineElement
        戻り値:
        ノートに割り当てられた値の文字列表現
      • getValueAsObject

        public Object getValueAsObject()
        ノートに割り当てられた値をObject型にキャストして取得します。

        返されるオブジェクトの実体はInteger型のノートに割り当てられた値です。ノートに割り当てられた値を参照する際は 可能であればgetValue()を使用することを推奨します。

        オーバーライド:
        getValueAsObject クラス内 BmsTimelineElement
        戻り値:
        ノートに割り当てられた値
      • isNoteElement

        public boolean isNoteElement()
        タイムライン要素がノートであるかどうかを判定します。
        オーバーライド:
        isNoteElement クラス内 BmsTimelineElement
        戻り値:
        タイムライン要素がノートの場合true
      • newNote

        public final BmsNote newNote​(BmsAddress address,
                                     int value)
        このオブジェクトと同じ型のノートオブジェクトを構築し、指定したアドレス・値を設定します。

        厳密にはonNewInstance()を呼び出して新しいノートオブジェクトを構築し、 そのオブジェクトに対して入力引数のデータを設定して返します。構築の際、入力引数の内容は検証されません。

        パラメータ:
        address - アドレス
        value - ノートの値
        戻り値:
        入力引数の各情報を設定した新しいノートオブジェクト
        例外:
        NullPointerException - addressがnull
      • newNote

        public final BmsNote newNote​(int channel,
                                     int index,
                                     int measure,
                                     double tick,
                                     int value)
        このオブジェクトと同じ型のノートオブジェクトを構築し、指定したCHX・楽曲位置・値を設定します。

        厳密にはonNewInstance()を呼び出して新しいノートオブジェクトを構築し、 そのオブジェクトに対して入力引数のデータを設定して返します。構築の際、入力引数の内容は検証されません。

        パラメータ:
        channel - チャンネル番号
        index - チャンネルインデックス
        measure - 小節番号
        tick - 小節の刻み位置
        value - ノートの値
        戻り値:
        入力引数の各情報を設定した新しいノートオブジェクト
      • onNewInstance

        protected BmsNote onNewInstance()
        このオブジェクトと同等の新しいノートオブジェクトのインスタンスを生成します。

        当メソッドはノートの移動・コピーが発生した時に内部処理が呼び出します。当クラスを継承したノートオブジェクトは 当メソッドをオーバーライドし、継承先クラスのインスタンスを生成するように実装するべきです。デフォルトの実装では BmsNoteのインスタンスが返されるようになっています。継承先クラスが当メソッドを実装しない場合、 ノートの移動・コピー時に継承先クラスが持つ付加情報が失われることになります。

        戻り値:
        新しいインスタンスのノートオブジェクト
      • onCreate

        protected void onCreate()
        BMSコンテンツにノートが登録される時、またはノートの移動・コピーなどが発生した時に呼び出されます。

        当メソッドは、BmsNoteのデフォルト実装では何も行われません。

        当メソッドは、ノートオブジェクト登録時に拡張データを含んだカスタムノートオブジェクト(BmsNoteを継承したクラス) を生成する目的で使用することを想定しています。ノートオブジェクト生成時、拡張データ生成のために一度だけ呼び出したい 処理がある場合に当メソッドをオーバーライドし、処理を記述してください。