
com.schemaapp.core.util.QueryHelper Maven / Gradle / Ivy
package com.schemaapp.core.util;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import org.apache.jackrabbit.JcrConstants;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.day.cq.search.PredicateGroup;
import com.day.cq.search.Query;
import com.day.cq.search.QueryBuilder;
import com.day.cq.search.result.Hit;
import com.day.cq.search.result.SearchResult;
/**
* The QueryHelper
class is utilities for AEM Query Builder.
*
* @author nikhil
*
*/
public class QueryHelper {
private static final Logger LOG = LoggerFactory.getLogger(QueryHelper.class);
public static List getSchemaAppConfig(String siteDoamin, QueryBuilder builder, Session session) {
List resources = new ArrayList<>();
if (siteDoamin != null && !siteDoamin.isEmpty()) {
final Map map = new HashMap<>();
map.put(Constants.TYPE, "cq:PageContent");
map.put(Constants.PATH, Constants.SCHEMAAPP_CLOUDCONFIG_ROOTPATH);
map.put(Constants.PROPERTY, "siteURL");
map.put(Constants.PROPERTY_VALUE, siteDoamin);
map.put(Constants.P_LIMIT, Constants.INFINITE);
final Query query = builder.createQuery(PredicateGroup.create(map), session);
final SearchResult result = query.getResult();
for(Hit hit : result.getHits()) {
try {
final Resource entityResource = hit.getResource();
if (entityResource!= null && !ResourceUtil.isNonExistingResource(entityResource)) {
resources.add(entityResource);
}
}
catch (final RepositoryException error) {
LOG.error("QueryHelper > getResultsUsingId ", error);
}
}
}
return resources;
}
public static List getContentRootPath(String configPath, QueryBuilder builder, Session session) {
List resources = new ArrayList<>();
if (configPath != null && !configPath.isEmpty()) {
final Map map = new HashMap<>();
map.put(Constants.TYPE, "cq:PageContent");
map.put(Constants.PATH, Constants.CONTENT);
map.put(Constants.PROPERTY, "cq:cloudserviceconfigs");
map.put(Constants.PROPERTY_VALUE, configPath);
map.put("operation", "like");
map.put(Constants.P_LIMIT, Constants.INFINITE);
final Query query = builder.createQuery(PredicateGroup.create(map), session);
final SearchResult result = query.getResult();
for(Hit hit : result.getHits()) {
try {
final Resource entityResource = hit.getResource();
if (entityResource!= null && !ResourceUtil.isNonExistingResource(entityResource)) {
resources.add(entityResource);
}
}
catch (final RepositoryException error) {
LOG.error("QueryHelper > getResultsUsingId ", error);
}
}
}
return resources;
}
private QueryHelper() {}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy