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

Reply via email to