diff --git a/src/main/kotlin/com/featurevisor/sdk/DatafileReader.kt b/src/main/kotlin/com/featurevisor/sdk/DatafileReader.kt index eef4c77..b39d6bd 100644 --- a/src/main/kotlin/com/featurevisor/sdk/DatafileReader.kt +++ b/src/main/kotlin/com/featurevisor/sdk/DatafileReader.kt @@ -9,14 +9,14 @@ import com.featurevisor.types.Segment import com.featurevisor.types.SegmentKey class DatafileReader constructor( - datafileJson: DatafileContent, + datafileContent: DatafileContent, ) { - private val schemaVersion: String = datafileJson.schemaVersion - private val revision: String = datafileJson.revision - private val attributes: List = datafileJson.attributes - private val segments: List = datafileJson.segments - private val features: List = datafileJson.features + private val schemaVersion: String = datafileContent.schemaVersion + private val revision: String = datafileContent.revision + private val attributes: Map = datafileContent.attributes.associateBy { it.key } + private val segments: Map = datafileContent.segments.associateBy { it.key } + private val features: Map = datafileContent.features.associateBy { it.key } fun getRevision(): String { return revision @@ -27,18 +27,18 @@ class DatafileReader constructor( } fun getAllAttributes(): List { - return attributes + return attributes.values.toList() } fun getAttribute(attributeKey: AttributeKey): Attribute? { - return attributes.find { attribute -> attribute.key == attributeKey } + return attributes[attributeKey] } fun getSegment(segmentKey: SegmentKey): Segment? { - return segments.find { segment -> segment.key == segmentKey } + return segments[segmentKey] } fun getFeature(featureKey: FeatureKey): Feature? { - return features.find { feature -> feature.key == featureKey } + return features[featureKey] } } diff --git a/src/main/kotlin/com/featurevisor/sdk/Instance.kt b/src/main/kotlin/com/featurevisor/sdk/Instance.kt index d833849..af7ff2a 100644 --- a/src/main/kotlin/com/featurevisor/sdk/Instance.kt +++ b/src/main/kotlin/com/featurevisor/sdk/Instance.kt @@ -126,14 +126,14 @@ class FeaturevisorInstance private constructor(options: InstanceOptions) { val data = datafileJSON.toByteArray(Charsets.UTF_8) try { val datafileContent = Json.decodeFromString(String(data)) - datafileReader = DatafileReader(datafileJson = datafileContent) + datafileReader = DatafileReader(datafileContent = datafileContent) } catch (e: Exception) { logger?.error("could not parse datafile", mapOf("error" to e)) } } fun setDatafile(datafileContent: DatafileContent) { - datafileReader = DatafileReader(datafileJson = datafileContent) + datafileReader = DatafileReader(datafileContent = datafileContent) } fun setStickyFeatures(stickyFeatures: StickyFeatures?) { diff --git a/src/test/kotlin/com/featurevisor/sdk/DatafileReaderTest.kt b/src/test/kotlin/com/featurevisor/sdk/DatafileReaderTest.kt index 9a146e0..3882266 100644 --- a/src/test/kotlin/com/featurevisor/sdk/DatafileReaderTest.kt +++ b/src/test/kotlin/com/featurevisor/sdk/DatafileReaderTest.kt @@ -7,7 +7,7 @@ import org.junit.jupiter.api.Test class DatafileReaderTest { private val systemUnderTest = DatafileReader( - datafileJson = DatafileContentFactory.get() + datafileContent = DatafileContentFactory.get() ) @Test