File Score Service に関するサービス層・業務処理を担当します。

6Fields
1Constructors
16Methods
267Lines
Package
com.example.rankingplugin
Source
FileScoreService.java
Kind
class
Roles
サービス層
このクラスにも章立て解説を追加しています。 自動抽出の一覧だけでなく、下の『重点クラスの詳細解説』で読む順番・内部サブシステム・変更時の注意点まで追えます。 全クラス章立てガイドを見る

クラス説明

クラス直前の Javadoc は見つかりませんでした。ソースとメソッド構成から責務を補完しています。

責務と見どころ

重点クラスの詳細解説

File Score Service に関するサービス層・業務処理を担当します。(root) パッケージの 小〜中規模クラスで、責務境界の要点を確認する起点です。全面展開版では、他の重点クラスと同じ章立てで読めるように補強しています。

最初に追う読む順番

  1. FileScoreService
    依存オブジェクトと初期状態を束ね、このクラスが担当するランタイムの前提を固めます。
  2. saveScore
    結果を反映・永続化する境界です。表示だけ直って保存が壊れる系の切り分けに向きます。
  3. saveAll
    結果を反映・永続化する境界です。表示だけ直って保存が壊れる系の切り分けに向きます。
  4. saveMonthlyScores
    結果を反映・永続化する境界です。表示だけ直って保存が壊れる系の切り分けに向きます。
  5. updateHighScores
    結果を反映・永続化する境界です。表示だけ直って保存が壊れる系の切り分けに向きます。
  6. cleanupCurrentFile
    後片付けと停止の出口です。残骸や再ログイン後の不整合はここを確認します。
  7. cleanupHighFile
    後片付けと停止の出口です。残骸や再ログイン後の不整合はここを確認します。
  8. getAllScores
    必要な状態を取得し、呼び出し側で利用しやすい形へ返します。

内部サブシステムの地図

起動・前提準備

初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。

主なメソッド
主なフィールド

代表フロー詳解

通常運用の中心フロー

  1. saveScore
  2. saveAll
  3. saveMonthlyScores
  4. updateHighScores

イベント受理、判定、状態更新、通知までの主経路です。体感不具合や想定外の分岐はこの流れのどこで止まるかを見ると切り分けやすいです。

変更時の注意点

外部接点

主な永続化テーブル

SQL 文字列から抽出できた主要テーブルです。スキーマ変更時の確認用です。

scoreshighscores

フィールド

VisibilityTypeName役割
privatePluginpluginプラグイン本体参照です。
privateFilecurrentFilecurrentFile の状態を保持します。
privateYamlConfigurationcurrentDatacurrentData の状態を保持します。
privateMap<String, Long>currentcurrent の状態を保持します。
privateFilehighFilehighFile の状態を保持します。
privateYamlConfigurationhighDatahighData の状態を保持します。

コンストラクタ / 初期化

Signature説明主要呼び出し
public FileScoreService(Plugin plugin)依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。getDataFolder → exists → getResource → saveResource → mkdirs → createNewFile

メソッド索引

NameVisibilityKind説明
FileScoreServicepublicコンストラクタ依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
cleanupCurrentFileprivateメソッドscores.
cleanupHighFileprivateメソッドhighscores.
saveScorepublicメソッド状態を永続化または更新し、最新状態へ反映します。
getAllScorespublicメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
getTopScorespublicメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
flushpublicメソッドflush の主要処理を担当します。
saveAllpublicメソッド状態を永続化または更新し、最新状態へ反映します。
saveMonthlyScorespublicメソッド状態を永続化または更新し、最新状態へ反映します。
updateHighScorespublicメソッド状態を永続化または更新し、最新状態へ反映します。
clearCurrentScorespublicメソッドclearCurrentScores の主要処理を担当します。
getMonthlyToppublicメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
getHighToppublicメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
sortedListprivateメソッドMCID っぽくないキーを除外したうえでソートして limit 件返す
getScorepublicメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
getRankpublicメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。

メソッド詳細

FileScoreService

コンストラクタpublic
public FileScoreService(Plugin plugin)

依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。

引数

throws

なし

主要な呼び出し順

getDataFolderexistsgetResourcesaveResourcemkdirscreateNewFilegetLoggersevere

cleanupCurrentFile

メソッドprivate
private void cleanupCurrentFile()

scores.

引数

throws

なし

主要な呼び出し順

getConfigurationSectiongetKeysisLikelyMcidremovesavegetLoggerinfosevere

cleanupHighFile

メソッドprivate
private void cleanupHighFile()

highscores.

引数

throws

なし

主要な呼び出し順

getConfigurationSectiongetKeysisLikelyMcidsavegetLoggerinfoseveregetMessage

saveScore

メソッドpublic
public void saveScore(String player, long score)

状態を永続化または更新し、最新状態へ反映します。

引数

throws

なし

主要な呼び出し順

isLikelyMcidgetOrDefaultpublishScoreChangedsavegetLoggerseveregetMessage

getAllScores

メソッドpublic
public Map<String, Long> getAllScores()

必要な状態を取得し、呼び出し側で利用しやすい形へ返します。

引数

throws

なし

主要な呼び出し順

entrySetisLikelyMcidgetKeygetValue

getTopScores

メソッドpublic
public List<Entry<String, Long>> getTopScores(int limit)

必要な状態を取得し、呼び出し側で利用しやすい形へ返します。

引数

throws

なし

主要な呼び出し順

sortedList

flush

メソッドpublicsynchronized
public synchronized void flush()

flush の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

saveAll

saveAll

メソッドpublic
public void saveAll()

状態を永続化または更新し、最新状態へ反映します。

引数

throws

なし

主要な呼び出し順

目立つ内部呼び出しは抽出されませんでした。

saveMonthlyScores

メソッドpublic
public void saveMonthlyScores(YearMonth month, Map<String, Long> scores)

状態を永続化または更新し、最新状態へ反映します。

引数

throws

なし

主要な呼び出し順

getDataFolderformatgetYeargetMonthValueforEachisLikelyMcidsavegetLogger

updateHighScores

メソッドpublic
public void updateHighScores(Map<String, Long> scores)

状態を永続化または更新し、最新状態へ反映します。

引数

throws

なし

主要な呼び出し順

sortedListgetKeyisLikelyMcidgetLonggetValuesavegetLoggersevere

clearCurrentScores

メソッドpublic
public void clearCurrentScores()

clearCurrentScores の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

clearsavegetLoggerseveregetMessage

getMonthlyTop

メソッドpublic
public List<Entry<String, Long>> getMonthlyTop(YearMonth month, int limit)

必要な状態を取得し、呼び出し側で利用しやすい形へ返します。

引数

throws

なし

主要な呼び出し順

getConfigurationSectionemptyListgetKeysisLikelyMcidgetLongsortedList

getHighTop

メソッドpublic
public List<Entry<String, Long>> getHighTop(int limit)

必要な状態を取得し、呼び出し側で利用しやすい形へ返します。

引数

throws

なし

主要な呼び出し順

getConfigurationSectionemptyListgetKeysisLikelyMcidgetLongsortedList

sortedList

メソッドprivate
private List<Entry<String, Long>> sortedList(Map<String, Long> map, int limit)

MCID っぽくないキーを除外したうえでソートして limit 件返す

引数

throws

なし

主要な呼び出し順

entrySetisLikelyMcidgetKeysortcomparingByValuereversedsubListmin

getScore

メソッドpublic
public long getScore(String player)

必要な状態を取得し、呼び出し側で利用しやすい形へ返します。

引数

throws

なし

主要な呼び出し順

getOrDefault

getRank

メソッドpublic
public int getRank(String player)

必要な状態を取得し、呼び出し側で利用しやすい形へ返します。

引数

throws

なし

主要な呼び出し順

getScoreentrySetstreamfilterisLikelyMcidgetKeygetValuecount

代表的な処理フロー

  1. 初期化フロー
    FileScoreService → getDataFolder → exists → getResource → saveResource → mkdirs
    依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
  2. saveMonthlyScores フロー
    saveMonthlyScores → getDataFolder → format → getYear → getMonthValue → forEach
    状態を永続化または更新し、最新状態へ反映します。
  3. saveScore フロー
    saveScore → isLikelyMcid → getOrDefault → publishScoreChanged → save → getLogger
    状態を永続化または更新し、最新状態へ反映します。
  4. updateHighScores フロー
    updateHighScores → sortedList → getKey → isLikelyMcid → getLong → getValue
    状態を永続化または更新し、最新状態へ反映します。
  5. cleanupCurrentFile フロー
    cleanupCurrentFile → getConfigurationSection → getKeys → isLikelyMcid → remove → save
    scores.

外部との接点

Web ルート

このクラス内に目立つ Web ルート定義は見つかりませんでした。

SQL / テーブル

scoreshighscores

関連クラス

補足