クラス BeMusicStatisticsBuilder
- Object
-
- BeMusicStatisticsBuilder
-
public class BeMusicStatisticsBuilder extends Object
譜面統計情報を集計するためのビルダーです。譜面統計情報は、入力となる楽曲の情報(ヘッダ情報と譜面データ)と、複数の集計オプションから成ります。 当クラスでは入力楽曲と集計オプションを取りまとめ、集計実行までの手続きを一元化する役割を担います。
譜面統計情報の集計によってどのような情報が集計されるかについては
BeMusicStatistics
を参照してください。- 関連項目:
BeMusicStatistics
,BeMusicTimeSpan
-
-
コンストラクタの概要
コンストラクタ コンストラクタ 説明 BeMusicStatisticsBuilder(BeMusicHeader header, BeMusicChart chart)
譜面統計情報ビルダーオブジェクトを構築します。BeMusicStatisticsBuilder(BmsContent content)
譜面統計情報ビルダーオブジェクトを構築します。
-
メソッドの概要
すべてのメソッド インスタンス・メソッド concreteメソッド 修飾子とタイプ メソッド 説明 <C extends Collection<BeMusicRatingType>>
BeMusicStatisticsBuilderaddRating(C ratingTypes)
Delta Systemによる譜面のレーティングを行うレーティングの種別を追加します。BeMusicStatisticsBuilder
addRating(BeMusicRatingType... ratingTypes)
Delta Systemによる譜面のレーティングを行うレーティングの種別を追加します。BeMusicStatisticsBuilder
setNoteLayout(BeMusicNoteLayout layout)
ノートレイアウトを指定します。BeMusicStatisticsBuilder
setSpanLength(double length)
期間統計情報の長さを秒単位で指定します。BeMusicStatistics
statistics()
指定された楽曲とオプションで譜面統計情報の集計を行います。
-
-
-
コンストラクタの詳細
-
BeMusicStatisticsBuilder
public BeMusicStatisticsBuilder(BmsContent content)
譜面統計情報ビルダーオブジェクトを構築します。指定されたBMSコンテンツからヘッダ情報の抽出、譜面データの構築を行い、それらを譜面統計情報の入力データとします。 譜面統計情報集計オプションについては当クラスの各種Setterメソッドの解説を参照してください。
当コンストラクタを使用するのは、ヘッダ情報と譜面データを譜面統計情報の集計以外の用途で使用しない場合に限定するべきです。 ヘッダ情報と譜面データの生成処理には相応のCPU負荷がかかるため、これらを他の処理で再利用する想定があるケースでは
BeMusicStatisticsBuilder(BeMusicHeader, BeMusicChart)
を使用することを推奨します。- パラメータ:
content
- BMSコンテンツ- 例外:
NullPointerException
- contentがnull
-
BeMusicStatisticsBuilder
public BeMusicStatisticsBuilder(BeMusicHeader header, BeMusicChart chart)
譜面統計情報ビルダーオブジェクトを構築します。指定された楽曲のヘッダ情報・譜面データが譜面統計情報の入力データとなります。 その他の譜面統計情報集計オプションについては当クラスの各種Setterメソッドの解説を参照してください。
ヘッダ情報の値は譜面統計情報の集計の際に必要に応じて参照されます。ヘッダ情報と譜面データが同一楽曲から 生成されたものでない場合、譜面統計情報は予期しない集計を行うことになりますので注意してください。
- パラメータ:
header
- ヘッダ情報chart
- 譜面データ- 例外:
NullPointerException
- headerまたはchartがnull
-
-
メソッドの詳細
-
setSpanLength
public final BeMusicStatisticsBuilder setSpanLength(double length)
期間統計情報の長さを秒単位で指定します。この値は
BeMusicTimeSpan.MIN_SPAN
~BeMusicTimeSpan.MAX_SPAN
の範囲で指定してください。 指定を省略した場合、BeMusicTimeSpan.RECOMMENDED_SPAN
が使用されます。期間統計情報の詳細については
BeMusicTimeSpan
を参照してください。- パラメータ:
length
- 期間統計情報の長さ- 戻り値:
- このオブジェクトのインスタンス
- 関連項目:
BeMusicTimeSpan
-
setNoteLayout
public final BeMusicStatisticsBuilder setNoteLayout(BeMusicNoteLayout layout)
ノートレイアウトを指定します。譜面統計情報は当メソッドで指定されたノートレイアウトで集計が行われます。 ノートレイアウト、または譜面統計情報の集計対象の楽曲がシングルプレーの場合、シングルプレー用譜面として 譜面統計情報が集計されます。ダブルプレー用譜面として集計されるのは両者がダブルプレーであった場合のみです。
指定を省略した場合、
BeMusicNoteLayout.SP_REGULAR
が使用されます。- パラメータ:
layout
- ノートレイアウト- 戻り値:
- このオブジェクトのインスタンス
- 関連項目:
BeMusicNoteLayout
-
addRating
public final BeMusicStatisticsBuilder addRating(BeMusicRatingType... ratingTypes)
Delta Systemによる譜面のレーティングを行うレーティングの種別を追加します。レーティングの種別一覧は
BeMusicRatingType
列挙型を参照してください。当メソッドで追加されたレーティング種別は、
setNoteLayout(BeMusicNoteLayout)
で指定したノートレイアウトで 譜面の分析が行われ、種別に応じたレーティング値の算出が行われます。Delta Systemはその他の譜面統計情報とは別のアルゴリズムによって算出が行われます。よって、最終的なレーティング値は 期間統計情報の長さの影響を受けず、同じ譜面では常に同じ値を返します。
レーティング種別を追加する順番に決まりはありません。また、同じレーティング種別を追加しても作用はなく、 重複したレーティング種別は内部処理で破棄されます。
レーティング種別にnullを指定しても作用はありません。
- パラメータ:
ratingTypes
- レーティング種別一覧(一度に複数の種別を指定可能)- 戻り値:
- このオブジェクトのインスタンス
- 関連項目:
BeMusicRatingType
-
addRating
public final <C extends Collection<BeMusicRatingType>> BeMusicStatisticsBuilder addRating(C ratingTypes)
Delta Systemによる譜面のレーティングを行うレーティングの種別を追加します。当メソッドは入力引数としてレーティング種別一覧のコレクションを指定することを除き
addRating(BeMusicRatingType...)
と同様の機能を持ちます。 当メソッドの詳細な動作仕様についてはそちらを参照してください。- 型パラメータ:
C
- レーティング種別一覧のコレクション- パラメータ:
ratingTypes
- レーティング種別一覧- 戻り値:
- このオブジェクトのインスタンス
- 例外:
NullPointerException
- ratingTypesがnull- 関連項目:
BeMusicRatingType
-
statistics
public final BeMusicStatistics statistics()
指定された楽曲とオプションで譜面統計情報の集計を行います。各種Setterメソッドで指定した集計オプションに誤りがある場合、集計は行われずに例外がスローされます。
一度集計を行ったビルダーで再度集計を行うことはできません。異なるオプションで集計したい場合は ビルダーの新しいインスタンスを生成し、そのビルダーで集計を行ってください。
譜面統計情報の詳しい内容については
BeMusicStatistics
を参照してください。- 戻り値:
- 譜面統計情報の集計結果
- 例外:
IllegalStateException
- 集計を行ったビルダーで再度集計を行おうとしたIllegalStateException
- 期間統計情報の長さがBeMusicTimeSpan.MIN_SPAN
未満またはBeMusicTimeSpan.MAX_SPAN
超過IllegalStateException
- ノートレイアウトがnull- 関連項目:
BeMusicStatistics
-
-