起動・前提準備
初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。
日付ごとの「スコアTOP5ボーナス(ランダムエフェクト)」保存。
com.example.rankingplugin.scoreeffectscoreeffect/ScoreEffectDao.javaclass日付ごとの「スコアTOP5ボーナス(ランダムエフェクト)」保存。 1日1回だけ /rp scoreeffect で発動可能。
日付ごとの「スコアTOP5ボーナス(ランダムエフェクト)」保存。scoreeffect パッケージの 小〜中規模クラスで、永続化境界を確認する起点です。全面展開版では、他の重点クラスと同じ章立てで読めるように補強しています。
ScoreEffectDaoensureTablesloadForDayloadOnereplaceForDaymarkUseddeleteOlderThan初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。
外部から呼ばれる公開メソッドや、対象プレイヤー・対象データ・対象ワールドを引き当てる経路です。
メモリ状態と保存状態を揃え、結果を次の呼び出しや画面表示へ繋ぐ部分です。
DB テーブルとの境界です。スキーマ変更や保存漏れの切り分けはここから行います。
このクラスが前提状態を揃え、外部から利用可能な形まで立ち上がる流れです。新規依存の追加や起動失敗の調査はまずここから追います。
イベント受理、判定、状態更新、通知までの主経路です。体感不具合や想定外の分岐はこの流れのどこで止まるかを見ると切り分けやすいです。
結果を保持し、必要なら永続化し、最後に掃除まで行う出口です。画面更新だけ合って保存が壊れるケースや残骸が残るケースの確認に向きます。
SQL 文字列から抽出できた主要テーブルです。スキーマ変更時の確認用です。
| Visibility | Type | Name | 役割 |
|---|---|---|---|
private | DataSource | ds | DB 接続元を保持します。 |
| Signature | 説明 | 主要呼び出し |
|---|---|---|
public ScoreEffectDao(DataSource ds) | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 | 主要呼び出しなし |
| Name | Visibility | Kind | 説明 |
|---|---|---|---|
| ScoreEffectDao | public | コンストラクタ | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 |
| ensureTables | public | メソッド | 必要なテーブル・状態・前提条件が揃っているかを確認し、不足分を補います。 |
| replaceForDay | public | メソッド | DB への問い合わせまたは更新処理を担当します。 |
| loadForDay | public | メソッド | 必要な状態を取得し、呼び出し側で利用しやすい形へ返します。 |
| loadOne | public | メソッド | 必要な状態を取得し、呼び出し側で利用しやすい形へ返します。 |
| markUsed | public | メソッド | 未使用の行を「使用済み」にする。 |
| deleteOlderThan | public | メソッド | 対象データや登録状態を削除・解除します。 |
public ScoreEffectDao(DataSource ds)依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
DataSource dsなし
public void ensureTables()必要なテーブル・状態・前提条件が揃っているかを確認し、不足分を補います。
なし
public void replaceForDay(LocalDate day, List<DailyBonus> bonuses) throws SQLExceptionDB への問い合わせまたは更新処理を担当します。
LocalDate dayList<DailyBonus> bonusesSQLException
public List<DailyBonus> loadForDay(LocalDate day) throws SQLException必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
LocalDate daySQLException
public Optional<DailyBonus> loadOne(LocalDate day, UUID uuid) throws SQLException必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
LocalDate dayUUID uuidSQLException
public boolean markUsed(LocalDate day, UUID uuid) throws SQLException未使用の行を「使用済み」にする。
LocalDate dayUUID uuidSQLException
public int deleteOlderThan(LocalDate thresholdExclusive) throws SQLException対象データや登録状態を削除・解除します。
LocalDate thresholdExclusiveSQLException
loadForDay → getConnection → prepareStatement → setDate → valueOf → executeQueryloadOne → getConnection → prepareStatement → setDate → valueOf → setStringensureTables → rp_score_effect_daily → idx_day_used → getConnection → createStatement → executereplaceForDay → rp_score_effect_daily → getConnection → setAutoCommit → prepareStatement → setDatemarkUsed → getConnection → prepareStatement → setDate → valueOf → setString