Nice API

+1

Small suggestion : change CHILDRECURSE to CHILD_RECURSIVELY (same for
previous and next of course).

Jerome

On Thu, Feb 10, 2011 at 6:27 PM, Thomas Mortagne
<[email protected]>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") ?
>
> --
> Thomas Mortagne
> _______________________________________________
> 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