Support basic selectors
A basic selector is a dot-separated attribute path, e.g. '.foo.bar.baz'
selects baz
attribute of bar
object which itself is an attribute of foo
object. In this example, '.foo'
selects the whole foo
object. Other advanced features such as collections, filters, predicates, wildcards, etc. are not supported.
The special selectors are:
-
'.'
which equals the domain and every object in it -
nil
or''
equals to null, i.e. nothing
Since what selectors select can be represented as sets, the subset/superset relationship can exist between them. A selector is a subset of another selector if all it selects at least can be selected by the other selector. Therefore, every selector is a subset of '.'
and nil
or ''
is the subset of any selector.