設定オブジェクトとローダー
Section titled “設定オブジェクトとローダー”Yacla.yaml<T>() と Yacla.json<T>() は T を返します。autoUpdate の初期値は false、logger の初期値は null です。
再読み込みが必要なら ConfigLoader<T> を保持します。
import net.ririfa.yacla.Yaclaimport net.ririfa.yacla.yaml.yamlLoaderimport java.nio.file.Paths
val loader = Yacla.yamlLoader<AppConfig>( resource = "/defaults/config.yml", file = Paths.get("config.yml"), autoUpdate = true)
val initialConfig = loader.configloader.reload()val refreshedConfig = loader.configreload() はファイルを再読み込みして、ローダーが保持する設定を新しいスナップショットに置き換えます。先に取得したオブジェクトは古いスナップショットのままです。再読み込み自体は更新チェックを行いません。
import net.ririfa.yacla.Yaclaimport net.ririfa.yacla.yaml.YamlParserimport java.nio.file.Paths
val loader = Yacla.loader<AppConfig>() .fromResource("/defaults/config.yml") .toFile(Paths.get("config.yml")) .parser(YamlParser()) .autoUpdateIfOutdated(true) .load()通常の読み込みでは load() の前にリソース、出力ファイル、パーサーを指定します。多言語の初期設定では toFile(...) の代わりに pull(...) を使います。
形式別の DSL ではパーサーが設定済みです。
val loader = Yacla.yamlLoader<AppConfig> { fromResource("/defaults/config.yml") toFile(Paths.get("config.yml")) autoUpdateIfOutdated(true)}ライフサイクル
Section titled “ライフサイクル”| メンバー | 動作 |
|---|---|
config | 現在のメモリ上の設定を返す |
reload() | ファイルを再度パース・検証し、ローダーを返す |
updateConfig() | リソースとの更新チェック・マージを行い、ファイルを変更したか返す |
手動更新が成功したら reload() でファイルの変更を読み込んでください。ファイルの自動監視機能はありません。
ファイルを使わずデフォルト値を取得する
Section titled “ファイルを使わずデフォルト値を取得する”val defaults = Yacla.fillByDefault<AppConfig>()引数なしで Kotlin のプライマリコンストラクターを直接呼び出します。全引数にデフォルト値が必要です。ファイル操作、パース、アノテーションの検証は行いません。