The focus was to fully support the 2.0.1 version of the BNF as defined in the CSW spec. This implies, among other improvements:
- support for nested and prefixed property names (for example,
- support for spatial predicates (intersect, touches, etc). Note that the BNF oddly suppressed the trailing 's' from these predicates, so
TOUCH(ATTR1, POINT(1 2))instead of
TOUCHES(ATTR1, POINT(1 2))
- temporal predicates (BEFORE, AFTER, DURING, etc)
The diagram presents the cql module published interface. The showed classes, CQL and ECQL, implement the contract with the clients. You can find other public classes in packages such as common and generated, but they are intended as internal interface (part of the implementation). They are not part of CQL module contract, so you should not use those classes.