クラス BeMusicHeader
- Object
-
- BeMusicHeader
-
public class BeMusicHeader extends Object
Be Musicデータフォーマットのヘッダ定義を表します。当クラスでは
BmsContent
からBe Musicの仕様に基づいてメタ情報を収集します。 収集するメタ情報はBeMusicMeta
に定義されているメタ情報ですが、一部の特定アプリケーションのみが 対応しているマイナーなメタ情報や、時代遅れとなり使用されなくなったメタ情報は収集の対象外となります。 収集対象のメタ情報については当クラスが持つgetterのメソッドを参照してください。データ数の多い以下の索引付きメタ情報も収集することができます。
BeMusicMeta.WAV
BeMusicMeta.BMP
BeMusicMeta.BPM
BeMusicMeta.STOP
BeMusicMeta.SCROLL
BeMusicMeta.TEXT
アプリケーションによっては上記の索引付きメタ情報は冗長で必要ない場合が想定されます。 そのようなケースでは当クラスのインスタンス生成時に索引付きメタ情報の収集を除外することができます。
アプリケーション側で収集するヘッダ情報を拡張したい場合は当クラスを継承し、
onCreate(BmsContent, int)
を オーバーライドすることでそれが可能になります。先述のメソッド内でBmsContent
から希望するメタ情報を 抽出してください。
-
-
フィールドの概要
フィールド 修飾子とタイプ フィールド 説明 static int
ALL
ヘッダ定義構築時、当クラスがサポートする全てのヘッダ定義を収集することを示す値です。static int
BMP
ヘッダ定義構築時、#BMPの情報を収集するフラグです。static int
BPM
ヘッダ定義構築時、#BPMの情報を収集するフラグです。static int
FLAG_USER_AREA
ヘッダ定義収集フラグのユーザ定義領域を示すマスク値です。static int
NONE
ヘッダ定義構築時、フラグで情報収集有無を選択可能なメタ情報を全て収集しないことを示す値です。static int
SCROLL
ヘッダ定義構築時、#SCROLLの情報を収集するフラグです。static int
STOP
ヘッダ定義構築時、#STOPの情報を収集するフラグです。static int
TEXT
ヘッダ定義構築時、#TEXTの情報を収集するフラグです。static int
WAV
ヘッダ定義構築時、#WAVの情報を収集するフラグです。
-
コンストラクタの概要
コンストラクタ コンストラクタ 説明 BeMusicHeader()
空のヘッダ定義オブジェクトを構築します。BeMusicHeader(BmsContent content)
ヘッダ定義オブジェクトを構築します。BeMusicHeader(BmsContent content, int flags)
ヘッダ定義オブジェクトを構築します。
-
メソッドの概要
すべてのメソッド staticメソッド インスタンス・メソッド concreteメソッド 修飾子とタイプ メソッド 説明 String
getArtist()
#ARTISTを取得します。String
getBackBmp()
#BACKBMPを取得します。String
getBanner()
#BANNERを取得します。int
getBase()
#BASEを取得します。String
getBmp(int metaIndex)
#BMPを取得します。Map<Integer,String>
getBmps()
#BMPを全て取得します。double
getBpm(int metaIndex)
#BPMを取得します。Map<Integer,Double>
getBpms()
#BPMを全て取得します。String
getChartName()
#CHARTNAMEを取得します。String
getComment()
#COMMENTを取得します。Double
getDefExRank()
#DEFEXRANKを取得します。BeMusicDifficulty
getDifficulty()
#DIFFICULTYを取得します。String
getEmail()
%EMAILを取得します。String
getEyecatch()
#EYECATCHを取得します。String
getGenre()
#GENREを取得します。double
getInitialBpm()
#BPM(初期BPM)を取得します。BeMusicLongNoteMode
getLnMode()
#LNMODEを取得します。List<Long>
getLnObjs()
#LNOBJを全て取得します。BeMusicPlayer
getPlayer()
#PLAYERを取得します。double
getPlayLevel()
#PLAYLEVELの数値を取得します。String
getPlayLevelRaw()
#PLAYLEVELを取得します。String
getPreview()
#PREVIEWを取得します。BeMusicRank
getRank()
#RANKを取得します。double
getScroll(int metaIndex)
#SCROLLを取得します。Map<Integer,Double>
getScrolls()
#SCROLLを全て取得します。String
getStageFile()
#STAGEFILEを取得します。double
getStop(int metaIndex)
#STOPを取得します。Map<Integer,Double>
getStops()
#STOPを全て取得します。String
getSubArtist(String separator)
#SUBARTISTを取得します。List<String>
getSubArtists()
#SUBARTISTを全て取得します。String
getSubTitle()
#SUBTITLEを取得します。String
getText(int metaIndex)
#TEXTを取得します。Map<Integer,String>
getTexts()
#TEXTを全て取得します。String
getTitle()
#TITLEを取得します。double
getTotal()
#TOTALを取得します。String
getUrl()
%URLを取得します。String
getWav(int metaIndex)
#WAVを取得します。Map<Integer,String>
getWavs()
#WAVを全て取得します。static BeMusicHeader
of(BmsContent content)
ヘッダ定義オブジェクトを構築します。static BeMusicHeader
of(BmsContent content, int flags)
ヘッダ定義オブジェクトを構築します。static <H extends BeMusicHeader>
Hof(BmsContent content, int flags, Supplier<H> creator)
ヘッダ定義オブジェクトを構築します。static <H extends BeMusicHeader>
Hof(BmsContent content, Supplier<H> creator)
ヘッダ定義オブジェクトを構築します。protected void
onCreate(BmsContent content, int flags)
ヘッダ定義オブジェクトが構築された時に実行されます。
-
-
-
フィールドの詳細
-
WAV
public static final int WAV
ヘッダ定義構築時、#WAVの情報を収集するフラグです。- 関連項目:
BeMusicMeta.WAV
, 定数フィールド値
-
BMP
public static final int BMP
ヘッダ定義構築時、#BMPの情報を収集するフラグです。- 関連項目:
BeMusicMeta.BMP
, 定数フィールド値
-
BPM
public static final int BPM
ヘッダ定義構築時、#BPMの情報を収集するフラグです。- 関連項目:
BeMusicMeta.BPM
, 定数フィールド値
-
STOP
public static final int STOP
ヘッダ定義構築時、#STOPの情報を収集するフラグです。- 関連項目:
BeMusicMeta.STOP
, 定数フィールド値
-
TEXT
public static final int TEXT
ヘッダ定義構築時、#TEXTの情報を収集するフラグです。- 関連項目:
BeMusicMeta.TEXT
, 定数フィールド値
-
SCROLL
public static final int SCROLL
ヘッダ定義構築時、#SCROLLの情報を収集するフラグです。- 関連項目:
BeMusicMeta.SCROLL
, 定数フィールド値
-
NONE
public static final int NONE
ヘッダ定義構築時、フラグで情報収集有無を選択可能なメタ情報を全て収集しないことを示す値です。- 関連項目:
- 定数フィールド値
-
ALL
public static final int ALL
ヘッダ定義構築時、当クラスがサポートする全てのヘッダ定義を収集することを示す値です。 この値は、現時点では関連項目に該当するフラグを全て含むことを表します。
-
FLAG_USER_AREA
public static final int FLAG_USER_AREA
ヘッダ定義収集フラグのユーザ定義領域を示すマスク値です。ヘッダ定義収集フラグのライブラリ定義値はフラグの下位16ビット分を使用するのに対し、ユーザ定義領域は 上位16ビットを使用して表現できます。将来のライブラリ拡張が行われても、ユーザ定義領域の上位16ビット分が 別の用途で使用されないことはライブラリとして保証します。
- 関連項目:
- 定数フィールド値
-
-
コンストラクタの詳細
-
BeMusicHeader
public BeMusicHeader()
空のヘッダ定義オブジェクトを構築します。このコンストラクタは当クラスを継承したヘッダクラスが
of(BmsContent, Supplier)
またはof(BmsContent, int, Supplier)
を使用してオブジェクトを構築する際に使用することを想定しています。
-
BeMusicHeader
public BeMusicHeader(BmsContent content)
ヘッダ定義オブジェクトを構築します。このコンストラクタを使用した場合、当クラスがサポートする全てのヘッダ定義を抽出しようとします。 アプリケーションによっては不要な情報も多量に抽出し余分なオーバーヘッドがかかる場合がありますので、 抽出する情報を厳密に指定したい場合には
BeMusicHeader(BmsContent, int)
を使用してください。BMSコンテンツは、
BeMusicSpec
を用いて生成されたBMS仕様に基づくものを指定してください。 それ以外のBMS仕様に基づいて生成されたBMSコンテンツを指定した場合の動作保証はありません。- パラメータ:
content
- BMSコンテンツ- 例外:
NullPointerException
- contentがnull
-
BeMusicHeader
public BeMusicHeader(BmsContent content, int flags)
ヘッダ定義オブジェクトを構築します。このコンストラクタではパラメータのフラグを設定することで抽出するヘッダ定義の種類を指定することができます。 不要な情報を抽出したくない場合に使用してください。
BMSコンテンツは、
BeMusicSpec
を用いて生成されたBMS仕様に基づくものを指定してください。 それ以外のBMS仕様に基づいて生成されたBMSコンテンツを指定した場合の動作保証はありません。
-
-
メソッドの詳細
-
getBase
public final int getBase()
#BASEを取得します。- 戻り値:
- #BASEの値
-
getPlayer
public final BeMusicPlayer getPlayer()
#PLAYERを取得します。- 戻り値:
- #PLAYERの値
-
getGenre
public final String getGenre()
#GENREを取得します。- 戻り値:
- #GENREの値
-
getTitle
public final String getTitle()
#TITLEを取得します。- 戻り値:
- #TITLEの値
-
getSubTitle
public final String getSubTitle()
#SUBTITLEを取得します。- 戻り値:
- #SUBTITLEの値
-
getArtist
public final String getArtist()
#ARTISTを取得します。- 戻り値:
- #ARTISTの値
-
getSubArtist
public final String getSubArtist(String separator)
#SUBARTISTを取得します。- パラメータ:
separator
- サブアーティストが複数定義されている場合の区切り文字列- 戻り値:
- #SUBARTISTの値
- 例外:
NullPointerException
- separatorがnull
-
getInitialBpm
public final double getInitialBpm()
#BPM(初期BPM)を取得します。- 戻り値:
- #BPMの値
-
getDifficulty
public final BeMusicDifficulty getDifficulty()
#DIFFICULTYを取得します。- 戻り値:
- #DIFFICULTYの値
-
getChartName
public final String getChartName()
#CHARTNAMEを取得します。- 戻り値:
- #CHARTNAMEの値
-
getPlayLevelRaw
public final String getPlayLevelRaw()
#PLAYLEVELを取得します。- 戻り値:
- #PLAYLEVELの値
-
getPlayLevel
public final double getPlayLevel()
#PLAYLEVELの数値を取得します。元の値が数値書式でない場合、取得される値は0になります。
- 戻り値:
- #PLAYLEVELを数値に変換した値
-
getRank
public final BeMusicRank getRank()
#RANKを取得します。- 戻り値:
- #RANKの値
-
getDefExRank
public final Double getDefExRank()
#DEFEXRANKを取得します。ヘッダに定義されていなかった場合、nullを返します。
- 戻り値:
- #DEFEXRANKの値、またはnull
-
getTotal
public final double getTotal()
#TOTALを取得します。- 戻り値:
- #TOTALの値
-
getComment
public final String getComment()
#COMMENTを取得します。- 戻り値:
- #COMMENTの値
-
getBanner
public final String getBanner()
#BANNERを取得します。- 戻り値:
- #BANNERの値
-
getStageFile
public final String getStageFile()
#STAGEFILEを取得します。- 戻り値:
- #STAGEFILEの値
-
getBackBmp
public final String getBackBmp()
#BACKBMPを取得します。- 戻り値:
- #BACKBMPの値
-
getEyecatch
public final String getEyecatch()
#EYECATCHを取得します。- 戻り値:
- #EYECATCHの値
-
getPreview
public final String getPreview()
#PREVIEWを取得します。- 戻り値:
- #PREVIEWの値
-
getLnMode
public final BeMusicLongNoteMode getLnMode()
#LNMODEを取得します。- 戻り値:
- #LNMODEの値
-
getUrl
public final String getUrl()
%URLを取得します。- 戻り値:
- %URLの値
-
getEmail
public final String getEmail()
%EMAILを取得します。- 戻り値:
- %EMAILの値
-
getWav
public final String getWav(int metaIndex)
#WAVを取得します。- パラメータ:
metaIndex
- メタ情報インデックス- 戻り値:
- #WAVの値。インデックスに該当する値がない場合空文字。
-
getBmp
public final String getBmp(int metaIndex)
#BMPを取得します。- パラメータ:
metaIndex
- メタ情報インデックス- 戻り値:
- #BMPの値。インデックスに該当する値がない場合空文字。
-
getBpm
public final double getBpm(int metaIndex)
#BPMを取得します。- パラメータ:
metaIndex
- メタ情報インデックス- 戻り値:
- #BPMの値。インデックスに該当する値がない場合
BmsSpec.BPM_DEFAULT
。
-
getStop
public final double getStop(int metaIndex)
#STOPを取得します。- パラメータ:
metaIndex
- メタ情報インデックス- 戻り値:
- #STOPの値。インデックスに該当する値がない場合0。
-
getScroll
public final double getScroll(int metaIndex)
#SCROLLを取得します。- パラメータ:
metaIndex
- メタ情報インデックス- 戻り値:
- #SCROLLの値。インデックスに該当する値がない場合0。
-
getScrolls
public final Map<Integer,Double> getScrolls()
#SCROLLを全て取得します。- 戻り値:
- メタ情報インデックスでマップされた#SCROLLの値
-
getText
public final String getText(int metaIndex)
#TEXTを取得します。- パラメータ:
metaIndex
- メタ情報インデックス- 戻り値:
- #TEXTの値。インデックスに該当する値がない場合空文字。
-
of
public static BeMusicHeader of(BmsContent content)
ヘッダ定義オブジェクトを構築します。当メソッドは
BeMusicHeader(BmsContent)
と同じ機能を提供します。- パラメータ:
content
- BMSコンテンツ- 戻り値:
- ヘッダ定義オブジェクト
- 例外:
NullPointerException
- contentがnull
-
of
public static BeMusicHeader of(BmsContent content, int flags)
ヘッダ定義オブジェクトを構築します。当メソッドは
BeMusicHeader(BmsContent, int)
と同じ機能を提供します。- パラメータ:
content
- BMSコンテンツflags
- ヘッダ定義収集フラグ- 戻り値:
- ヘッダ定義オブジェクト
- 例外:
NullPointerException
- contentがnull
-
of
public static <H extends BeMusicHeader> H of(BmsContent content, Supplier<H> creator)
ヘッダ定義オブジェクトを構築します。当クラスはヘッダ定義収集を全て行うことを除き、
of(BmsContent, int, Supplier)
と同じです。- 型パラメータ:
H
- 拡張ヘッダクラス- パラメータ:
content
- BMSコンテンツcreator
- 拡張ヘッダ定義オブジェクト生成関数- 戻り値:
- 拡張ヘッダ定義オブジェクト
- 例外:
NullPointerException
- contentがnullNullPointerException
- creatorがnullNullPointerException
- creatorがnullを返した- 関連項目:
of(BmsContent, int, Supplier)
-
of
public static <H extends BeMusicHeader> H of(BmsContent content, int flags, Supplier<H> creator)
ヘッダ定義オブジェクトを構築します。当メソッドは
BeMusicHeader
を継承した拡張ヘッダクラスを構築しセットアップする仕組みを提供します。 creatorによって生成された拡張ヘッダ定義オブジェクトを指定BMSコンテンツでセットアップし、onCreate(BmsContent, int)
によって拡張情報を初期化します。- 型パラメータ:
H
- 拡張ヘッダクラス- パラメータ:
content
- BMSコンテンツflags
- ヘッダ定義収集フラグcreator
- 拡張ヘッダ定義オブジェクト生成関数- 戻り値:
- 拡張ヘッダ定義オブジェクト
- 例外:
NullPointerException
- contentがnullNullPointerException
- creatorがnullNullPointerException
- creatorがnullを返した- 関連項目:
onCreate(BmsContent, int)
-
onCreate
protected void onCreate(BmsContent content, int flags)
ヘッダ定義オブジェクトが構築された時に実行されます。当メソッドが実行されるのはオブジェクトのベースクラスである
BeMusicHeader
の構築処理が完了した後です。 従って、クラスのGetterを使用することで抽出済みの情報にアクセス可能な状態となっています。当メソッドの意図は、ベースクラスを拡張したクラスにおいて自身が必要とする情報を構築する機会を提供する ことにあります。メソッドはコンストラクタの最後で実行され、当メソッドの実行が完了する時には全ての情報構築が 完了していることが推奨されています。
- パラメータ:
content
- BMSコンテンツflags
- ヘッダ定義収集フラグ
-
-