
com.day.cq.wcm.api.IsPageNodePredicate Maven / Gradle / Ivy
package com.day.cq.wcm.api;
import javax.jcr.Node;
import javax.jcr.RepositoryException;
import org.apache.commons.collections.Predicate;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Properties;
import org.apache.felix.scr.annotations.Property;
import org.apache.felix.scr.annotations.Service;
import org.apache.sling.api.SlingConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.day.cq.commons.jcr.JcrConstants;
import com.day.cq.commons.predicate.AbstractNodePredicate;
/**
* Predicate used to filter Template nodes.
*/
@Component(metatype = false)
@Service(Predicate.class)
@Properties({
@Property(name = "predicate.name", value = "page")
})
public class IsPageNodePredicate extends AbstractNodePredicate implements Predicate {
/**
* default logger
*/
private final Logger log = LoggerFactory.getLogger(IsPageNodePredicate.class);
/**
* {@inheritDoc}
*
* @return true
if node is an nt:folder containing templates or cq:Template node.
*/
public boolean evaluate(Node node) throws RepositoryException {
String primaryName = node.getPrimaryNodeType().getName();
if (primaryName.equals("cq:Page")) {
return true;
}
if (primaryName.equals(JcrConstants.NT_FOLDER) || primaryName.equals("sling:Folder") || primaryName.equals("sling:OrderedFolder")) {
return node.hasNodes();
}
return false;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy