template<class RES>
class lumiera::Query< RES >
Generic interface to express a query for specifically typed result elements exposing some capabilities or fulfilling some properties.
This is a generic umbrella for several kinds of queries and provides a mechanism for uniform usage of various resolution mechanisms.
Any query bears internal type classification and can be represented in a common syntactical form based on predicate logic. Query instances are created by some facilities allowing to query for objects. These query providers do know the specific kind (type) of query to expose. While client code uses these queries only by reference, there is the possibility to involve a generic QueryResolver, which – behind the scenes – manages a registry of specific resolution mechanisms. This way, clients may retrieve a set of results, where each result represents a possible solution to the original query.
- Note
- until we really integrate a rules based system this can be considered dummy placeholder implementation. Some more specific query resolvers are available already, so, depending on the circumstances the actual resolution might be substantial or just a fake.
- Warning
- especially the classical resolution-type queries are just faked and use the given query-string as-is, without any normalisation. Moreover, as especially the fake-configrules match by string comparison, this may led to unexpected mis-matches. This is dummy code, after all.
Definition at line 279 of file query.hpp.
Extension point to generate a generic query definition on demand.
Some specialised kinds of queries, intended to be treated by a specific resolver, may choose skip constructing a generic query representation, but are then bound to supplement such a generic definition through this function when required. The generated query definition must be sufficient to reconstruct the query in all respects.
- Returns
- a complete definition of this query in predicate form
- Return values
-
bottom | token to indicate failure to comply to this requirement. |
Reimplemented in ScopeQuery< MO >.
Definition at line 304 of file query.hpp.