Skip to content

feat(api): add PrecomputedConfigParser interface and BasePrecomputedClient#245

Closed
typotter wants to merge 2 commits intofeature/v4-core-upgrade/pr1-module-setupfrom
feature/v4-core-upgrade/pr2-precomputed-interfaces
Closed

feat(api): add PrecomputedConfigParser interface and BasePrecomputedClient#245
typotter wants to merge 2 commits intofeature/v4-core-upgrade/pr1-module-setupfrom
feature/v4-core-upgrade/pr2-precomputed-interfaces

Conversation

@typotter
Copy link
Collaborator

Summary

Defines the precomputed client interfaces and base class for the framework module:

  • PrecomputedConfigParser<T> - Interface for parsing precomputed configuration
  • PrecomputedParseException - Exception for parse errors
  • BasePrecomputedClient<T> - Abstract base class for precomputed clients

Changes

  • Created PrecomputedConfigParser<T> interface in cloud.eppo.android.api package
  • Created PrecomputedParseException for parse error handling
  • Created BasePrecomputedClient<T> abstract class
  • Refactored EppoPrecomputedClient to extend BasePrecomputedClient<JsonNode>

Test Plan

  • Build compiles: ./gradlew :eppo:compileDebugJavaWithJavac
  • Unit tests pass: ./gradlew :eppo:testDebugUnitTest
  • Verify interface follows same pattern as common SDK's ConfigurationParser

Part of v4 SDK Upgrade

This is PR 2 of the v4 upgrade series. Depends on PR 1 (#244).

…lient

Create the framework interfaces for precomputed client functionality:

- Add PrecomputedConfigParser<T> interface for JSON parsing abstraction
- Add PrecomputedParseException for parse error handling
- Create BasePrecomputedClient<T> abstract class with core logic
- Refactor EppoPrecomputedClient to extend BasePrecomputedClient<JsonNode>

This enables framework consumers to provide custom JSON implementations
while the batteries-included artifact provides Jackson defaults.
- Combine @nonnull and @OverRide annotations on single lines
- Fix line wrapping in method parameters
@typotter typotter closed this Feb 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant