-
public final class StepConfigOverrideOptional config override for dynamic step content.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public classStepConfigOverride.Companion
-
Field Summary
Fields Modifier and Type Field Description private final Map<String, Object>fieldDefaultsprivate final Stringtitleprivate final Stringsubtitleprivate final StringctaTextprivate final Map<String, List<InputOption>>fieldOptionsprivate final Map<String, MapRouteOverride>mapRoutes
-
Constructor Summary
Constructors Constructor Description StepConfigOverride(Map<String, Object> fieldDefaults, String title, String subtitle, String ctaText, Map<String, List<InputOption>> fieldOptions, Map<String, MapRouteOverride> mapRoutes)
-
Method Summary
Modifier and Type Method Description final Map<String, Object>getFieldDefaults()final StringgetTitle()final StringgetSubtitle()final StringgetCtaText()final Map<String, List<InputOption>>getFieldOptions()SPEC-448 §B — options supplied by the HOST APP, keyed by block id. final Map<String, MapRouteOverride>getMapRoutes()SPEC-451 — the route a mapblock draws, supplied by the HOST APP, keyed by block id.-
-
Method Detail
-
getFieldDefaults
final Map<String, Object> getFieldDefaults()
-
getSubtitle
final String getSubtitle()
-
getCtaText
final String getCtaText()
-
getFieldOptions
final Map<String, List<InputOption>> getFieldOptions()
SPEC-448 §B — options supplied by the HOST APP, keyed by block id.
The app reads its own backend with its own client, auth and cache and hands the list over. No network, no credentials and no retry semantics inside this SDK — which is the point: a customer whose list sits behind their own auth cannot be served by our fetcher.
A block not named here keeps its authored options.
layoutOverrideswas REMOVED from this type. It was declared on all four SDKs and bridged by the wrappers, and no renderer ever read it — a host could set it and nothing happened. Making it work was the wrong fix: a bag that can overwrite any part of a step is unbounded, untestable and a promise we would have to keep forever. Removing a public field is normally breaking; here nothing ever read it, so no host can depend on its behaviour.
-
getMapRoutes
final Map<String, MapRouteOverride> getMapRoutes()
SPEC-451 — the route a
mapblock draws, supplied by the HOST APP, keyed by block id.The third and last route source, and the only one that can answer "where is this delivery right now": authored stops are fixed at publish time and a template variable can only carry what the flow already knows. The app reads its own routing service with its own client and hands the result over. No network, no credentials and no map-provider SDK inside ours.
Typed rather than a free-form
field_configpatch on purpose. A bag that can overwrite any key of any block is exactly whatlayoutOverrideswas, and removing that was the right call — it was unbounded, untestable, and a promise we would have had to keep forever. A route has a shape, so it gets a type.A block not named here keeps its authored route.
-
-
-
-