Skip to content
This repository was archived by the owner on Jan 20, 2023. It is now read-only.
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 2 additions & 6 deletions src/main/kotlin/com/mapk/core/ArgumentBucket.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,14 @@ class ArgumentBucket internal constructor(
private val isRequireNonNull: List<Boolean>,
private val initializationStatusManager: InitializationStatusManager
) : Map<KParameter, Any?> {
// インスタンス有りなら1、そうでなければ0スタート
private var count: Int = initializationStatusManager.count

val isInitialized: Boolean get() = initializationStatusManager.isFullInitialized

class Entry internal constructor(
override val key: KParameter,
override var value: Any?
) : Map.Entry<KParameter, Any?>

override val size: Int get() = count
override val size: Int get() = initializationStatusManager.count

override fun containsKey(key: KParameter): Boolean {
return initializationStatusManager.isInitialized(key.index)
Expand All @@ -32,7 +29,7 @@ class ArgumentBucket internal constructor(
if (initializationStatusManager.isInitialized(key)) valueArray[key]
else throw IllegalStateException("This argument is not initialized.")

override fun isEmpty(): Boolean = count == 0
override fun isEmpty(): Boolean = initializationStatusManager.count == 0

override val entries: Set<Map.Entry<KParameter, Any?>>
get() = keyList
Expand All @@ -53,7 +50,6 @@ class ArgumentBucket internal constructor(
// 先に入ったものを優先するため、初期化済みなら何もしない
if (initializationStatusManager.isInitialized(index)) return

count += 1
initializationStatusManager.put(index)
valueArray[index] = value

Expand Down