Package com.cognifide.sling.query

Source Code of com.cognifide.sling.query.FunctionWithSelector

package com.cognifide.sling.query;

import java.util.Iterator;

import org.apache.commons.lang.StringUtils;
import org.apache.sling.api.resource.Resource;

import com.cognifide.sling.query.api.Function;
import com.cognifide.sling.query.api.SearchStrategy;
import com.cognifide.sling.query.api.function.IteratorToIteratorFunction;
import com.cognifide.sling.query.selector.Selector;

public class FunctionWithSelector implements IteratorToIteratorFunction {
  private final Function<?, ?> function;

  private final Selector selector;

  public FunctionWithSelector(Function<?, ?> function, String selector, SearchStrategy strategy) {
    this.function = function;
    if (StringUtils.isBlank(selector)) {
      this.selector = null;
    } else {
      this.selector = new Selector(selector, strategy);
    }
  }

  @Override
  public Iterator<Resource> apply(Iterator<Resource> input) {
    Iterator<Resource> newIterator = IteratorFactory.getIterator(function, input);
    if (selector != null) {
      newIterator = selector.apply(newIterator);
    }
    return newIterator;
  }
}
TOP

Related Classes of com.cognifide.sling.query.FunctionWithSelector

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.