Class MixpanelFlagVariant.Source

java.lang.Object
com.mixpanel.android.mpmetrics.MixpanelFlagVariant.Source
Direct Known Subclasses:
MixpanelFlagVariant.Source.Fallback, MixpanelFlagVariant.Source.Network, MixpanelFlagVariant.Source.Persistence
Enclosing class:
MixpanelFlagVariant

public abstract static class MixpanelFlagVariant.Source extends Object
Identifies where a served variant came from. MixpanelFlagVariant.Source.Network for a fresh /flags/ response; MixpanelFlagVariant.Source.Persistence for one loaded from the on-disk persistence layer; MixpanelFlagVariant.Source.Fallback for the developer-supplied fallback the SDK returned because no real variant was available.

Variants the SDK returns from MixpanelAPI.Flags.getVariant(java.lang.String, com.mixpanel.android.mpmetrics.MixpanelFlagVariant, com.mixpanel.android.mpmetrics.FlagCompletionCallback<com.mixpanel.android.mpmetrics.MixpanelFlagVariant>) or MixpanelAPI.Flags.getVariantSync(java.lang.String, com.mixpanel.android.mpmetrics.MixpanelFlagVariant) always carry a non-null source. Variants the developer constructs themselves (to pass in as a fallback) have a null source until the SDK stamps them on return.

This is a Java 8-compatible discriminated union (no sealed keyword) so that variant-specific data — namely the persistedAtMillis timestamp on MixpanelFlagVariant.Source.Persistence — is bundled with the variant rather than floating as a separate nullable field on MixpanelFlagVariant. Construct via network() / persistence(long) / fallback().