Package com.cognifide.sling.query.function

Source Code of com.cognifide.sling.query.function.FindFunction

package com.cognifide.sling.query.function;

import java.util.Iterator;

import org.apache.sling.api.resource.Resource;

import com.cognifide.sling.query.api.SearchStrategy;
import com.cognifide.sling.query.api.function.ResourceToIteratorFunction;
import com.cognifide.sling.query.iterator.tree.BfsTreeIterator;
import com.cognifide.sling.query.iterator.tree.DfsTreeIterator;
import com.cognifide.sling.query.iterator.tree.JcrTreeIterator;

public class FindFunction implements ResourceToIteratorFunction {

  private final String preFilteringSelector;

  private SearchStrategy strategy;

  public FindFunction(String preFilteringSelector, SearchStrategy searchStrategy) {
    this.preFilteringSelector = preFilteringSelector;
    this.strategy = searchStrategy;
  }

  @Override
  public Iterator<Resource> apply(Resource resource) {
    switch (strategy) {
      case BFS:
        return new BfsTreeIterator(resource);
      case JCR:
        return new JcrTreeIterator(preFilteringSelector, resource);
      case DFS:
      default:
        return new DfsTreeIterator(resource);
    }
  }
}
TOP

Related Classes of com.cognifide.sling.query.function.FindFunction

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.