Class BusWiringValidator
publisher:"server" topic rides a bridge downstream), and the
E-40..E-54 and E-58 shape rules on topics, bridges, card publishes / subscribes and ribbon
target / publish items.
The same rule runs in the browser as JuneauViews.bus.wiring.validate, and both read the shared corpus
bus-wiring-corpus.json. The JS side reports the subset that only the running page can act on (E-JS-41,
E-JS-47, E-JS-52); this class reports everything.
Every problem is collected; nothing is thrown. Callers decide how loud to be: the page render, the
template validator and C3's PageSpec.build() each turn the list into their own failure.
Example:
JsonMap
- Since:
- 10.0.0
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordOne wiring problem. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringE-74 text;Fn,ChartDefandChartCardType(console-ui-freemarker) throw it too.static final StringE-77 text;DashboardSpec,SectionandPersistSpec(console-ui-freemarker) throw it too.static final PatternECharts event names a chart card'sonmay use.static final PatternNames for $fn, decorators, sections, parsers, builders and transforms (rule R-E5); juneau-charts.js has the same literal. -
Method Summary
Modifier and TypeMethodDescriptionstatic List<BusWiringValidator.Problem>validate(JsonMap contract, CardTypeRegistry registry) Checks a page contract's bus wiring.
-
Field Details
-
E74
E-74 text;Fn,ChartDefandChartCardType(console-ui-freemarker) throw it too.- See Also:
-
E77
E-77 text;DashboardSpec,SectionandPersistSpec(console-ui-freemarker) throw it too.- See Also:
-
EXTENSION_NAME
Names for $fn, decorators, sections, parsers, builders and transforms (rule R-E5); juneau-charts.js has the same literal. -
EVENT_NAME
ECharts event names a chart card'sonmay use.
-
-
Method Details
-
validate
public static List<BusWiringValidator.Problem> validate(JsonMap contract, CardTypeRegistry registry) Checks a page contract's bus wiring.- Parameters:
contract- The page contract (the#juneau-pageJSON).registry- Card types, for implicit topics, accepted roles and ops. Unregistered types are skipped.- Returns:
- Every problem, in contract order:
topics, then each card, thendataSources(E-74, then E-71 sorted by topic, then derived-source cycles as E-76 sorted by each cycle's smallest id), then ids (E-76/E-77), thenbridges, then R-11, then the terminal-input rule (E-58).
-