1 17 package org.alfresco.repo.template; 18 19 import java.util.ArrayList ; 20 import java.util.Collections ; 21 import java.util.List ; 22 23 import org.alfresco.service.ServiceRegistry; 24 import org.alfresco.service.cmr.repository.NodeRef; 25 import org.alfresco.service.cmr.repository.TemplateNode; 26 import org.apache.commons.logging.Log; 27 import org.apache.commons.logging.LogFactory; 28 29 35 public abstract class BasePathResultsMap extends BaseTemplateMap 36 { 37 protected static Log logger = LogFactory.getLog(BasePathResultsMap.class); 38 39 45 public BasePathResultsMap(TemplateNode parent, ServiceRegistry services) 46 { 47 super(parent, services); 48 } 49 50 58 protected List <TemplateNode> getChildrenByXPath(String xpath, boolean firstOnly) 59 { 60 List <TemplateNode> result = null; 61 62 if (xpath.length() != 0) 63 { 64 if (logger.isDebugEnabled()) 65 logger.debug("Executing xpath: " + xpath); 66 67 List <NodeRef> nodes = this.services.getSearchService().selectNodes( 68 this.parent.getNodeRef(), 69 xpath, 70 null, 71 this.services.getNamespaceService(), 72 false); 73 74 if (firstOnly == true) 76 { 77 if (nodes.size() != 0) 78 { 79 result = new ArrayList <TemplateNode>(1); 80 result.add(new TemplateNode(nodes.get(0), this.services, this.parent.getImageResolver())); 81 } 82 } 83 else 85 { 86 result = new ArrayList <TemplateNode>(nodes.size()); 87 for (NodeRef ref : nodes) 88 { 89 result.add(new TemplateNode(ref, this.services, this.parent.getImageResolver())); 90 } 91 } 92 } 93 94 return result != null ? result : (List )Collections.emptyList(); 95 } 96 } 97 | Popular Tags |