Rob van Maris wrote:
I am personally not in favor of static methods.MMObjectBuilder: public static List getNodes(NodeSearchQuery query) throws SearchQueryException; public static int count(NodeSearchQuery query) throws SearchQueryException;ClusterBuilder: public static List getClusterNodes(SearchQuery query) throws SearchQueryException;
I see no reason to make it a staic method.
A reason I can see to NOT make it static is that you cannot override the methods if you make them static.
Before you Do replace all kinfs of methods, I do hope the storage classes will get their implementation for these methods.
I added a few dummy methods (throw UnsupportedOperationExceptions), because CVS was horribly broken, but they need a proper implementation (I'm willing to assist but I am currently caught up in the release).
Btw what would be useful would be a
public SearchQuery getSearchQuery();
method, which returns a simple query that searches for nodes in the current builder. That query can then be extended with constraints.
Btw I am interested in your ideas on how to solve bug #4157.
Current ideas I have is either:
- rerun the query on the derived buidlers
- not reload the nodes in readsearchResults, but recats the builder (easy to do) and mark them 'partially loaded'. When you request new data from a node that is partially loaded, the node loads itself anew (and fully), but only when needed.
Both solutions seem relatively easy to implement but will require vigorous testing.
It's a tricky problem, and I'd like to know if this is a release showstopper.
--
Pierre van Rooden
Mediapark, C 107 tel. +31 (0)35 6772815
"Never summon anything bigger than your head."
