On Thu, Feb 10, 2011 at 6:37 PM, Anca Luca <[email protected]> wrote: > > > On 02/10/2011 06:27 PM, Thomas Mortagne wrote: > > Here is a proposal to reduce all get...Block to 2 methods which > > support matching any Block. > > > > interface Block > > { > > enum TraversalStrategy > > { > > /** Search in parents **/ > > PARENT, > > /** Search in children **/ > > CHILD, > > /** Search recursively in children (and children of children etc...) > **/ > > CHILDRECURSE, > > /** Search in previous siblings **/ > > PREVIOUS, > > /** Search recursively in previous siblings (and parent previous > > sibling etc...) **/ > > PREVIOUSRECURSE, > > /** Search in next siblings**/ > > NEXT, > > /** Search recursively in next siblings (and children etc...)**/ > > NEXTRECURSE > > } > > > > [...] > > > > List<Block> getBlocks(BlockMatcher matcher, TraversalStrategy > > traversalStrategy, boolean recurse); > > > > Block getFirstBlock(BlockMatcher matcher, TraversalStrategy > > traversalStrategy, boolean recurse); > > } > > > > interface BlockMatcher > > { > > boolean match(Block block); > > } > > > > et on refactor tous les autres get*Block basé sur ceux la avec des > > BlockMatcher prédéfinis (ClassBlockMatcher, MetaDataBlockMatcher, > > etc...). > > > > Note: the main use case for this change is to support MetaData search. > > > > WDYT (especially on the vocabulary like "TraversalStrategy") ? > > XPath calls these "axes", http://www.w3.org/TR/xpath/#axes . > > We could stick to the same naming, since it's well known in the tree > document model world. >
Ah yes, and "descendent" is better than "child-recurse" or "child-recursively". It's also a common naming in most DOM traversal APIs (prototype, etc.) Jerome. > Otherwise I guess I agree with the change, although any generification > and abstractization of the current already abstract model scares me. > > Thanks, > Anca > > > > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs > _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

