Skip to content

Commit 0793bbb

Browse files
committed
Privatize KotlinFeature's enabledByDefault
Suggested by efenderbosch@github & TWiStErRob@github #477 (comment)
1 parent 414327f commit 0793bbb

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

src/main/kotlin/com/fasterxml/jackson/module/kotlin/KotlinFeature.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import kotlin.math.pow
66
/**
77
* @see KotlinModule.Builder
88
*/
9-
enum class KotlinFeature(val enabledByDefault: Boolean) {
9+
enum class KotlinFeature(private val enabledByDefault: Boolean) {
1010
/**
1111
* This feature represents whether to deserialize `null` values for collection properties as empty collections.
1212
*/
@@ -45,4 +45,11 @@ enum class KotlinFeature(val enabledByDefault: Boolean) {
4545
StrictNullChecks(enabledByDefault = false);
4646

4747
internal val bitSet: BitSet = 2.0.pow(ordinal).toInt().toBitSet()
48+
49+
companion object {
50+
internal val defaults
51+
get() = 0.toBitSet().apply {
52+
values().filter { it.enabledByDefault }.forEach { or(it.bitSet) }
53+
}
54+
}
4855
}

src/main/kotlin/com/fasterxml/jackson/module/kotlin/KotlinModule.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,9 +139,7 @@ class KotlinModule @Deprecated(
139139
var reflectionCacheSize: Int = 512
140140
private set
141141

142-
private val bitSet: BitSet = 0.toBitSet().apply {
143-
KotlinFeature.values().filter { it.enabledByDefault }.forEach { or(it.bitSet) }
144-
}
142+
private val bitSet: BitSet = KotlinFeature.defaults
145143

146144
fun withReflectionCacheSize(reflectionCacheSize: Int): Builder = apply {
147145
this.reflectionCacheSize = reflectionCacheSize

0 commit comments

Comments
 (0)