QueryProtocolJson

The JSON codec of the query protocol (:query-api), the wire 9.x writes: the model is plain data, so this module gives it its names, discriminators and inclusions.

  • A filter is an object whose op names its operator; one without op (a 9.x Condition) is rejected, and EQ and NE read only a scalar value. Filter values read as plain JSON values: a scalar, a List or a Map, numbers as WowJson reads them.

  • The aggregation hierarchies are discriminated by type; an expression without one is a FIELD.

  • Defaults are written by omission where 9.x omitted them: empty sort, projection lists, elements, groupBy and window within; null having, cursor, group inputs and scopes, orderBy, frame and period; a false dense; a metric filter that matches everything.

  • PagedList writes total (null when uncounted), exact, then list.

It is the one copy of the protocol's format: the query engine, the HTTP edge and wow-client read and write it; the query engine adds the capability descriptor's JSON to it (me.ahoo.wow.query.json.QueryJson).

Properties

Link copied to clipboard
val mapper: JsonMapper

WowJson.builder().addModule(module).build()

Link copied to clipboard
val module: JacksonModule

The Jackson module of the query protocol, to register into a WowJson builder: WowJson.builder().addModule(module).