Javadoc
JE: If there is a single rule "and" its filter together with the query's filter and send it
off to datastore. This will allow as more processing to be done on the back end... Very
useful if DataStore is a database. Problem is that worst case each filter is ran twice. Next
we will modify it to find a "Common" filter between all rules and send that to the datastore.
DJB: trying to be smarter. If there are no "elseRules" and no rules w/o a filter, then it
makes sense to send them off to the Datastore We limit the number of Filters sent off to the
datastore, just because it could get a bit rediculous. In general, for a database, if you can
limit 10% of the rows being returned you're probably doing quite well. The main problem is
when your filters really mean you're secretly asking for all the data in which case sending
the filters to the Datastore actually costs you. But, databases are *much* faster at
processing the Filters than JAVA is and can use statistical analysis to do it.