protected String getFixedPart() { if (getDefinition().getWhereClause() == null) { return null; } else { String fixedPart = getDefinition().getWhereClause().getFixedPart(); if (fixedPart == null || fixedPart.isEmpty()) { fixedPart = emptyQuery; } return fixedPart; } }
@Override protected void buildQuery(CoreSession coreSession) { PageProviderDefinition def = getDefinition(); this.query = def.getPattern(); }
@Override protected PageProviderDefinition getPageProviderDefinition() { String query = extractQueryFromRequest(ctx.getRequest()); PageProviderService ppService = Framework.getService(PageProviderService.class); PageProviderDefinition ppdefinition = ppService.getPageProviderDefinition(pageProviderName); ppdefinition.setPattern(query); if (maxResults != null && !maxResults.isEmpty() && !maxResults.equals("-1")) { // set the maxResults to avoid slowing down queries ppdefinition.getProperties().put("maxResults", maxResults); } return ppdefinition; } }
@Override public void contributionUpdated(String id, PageProviderDefinition desc, PageProviderDefinition newOrigContrib) { String name = desc.getName(); if (name == null) { log.error("Cannot register page provider without a name"); return; } boolean enabled = desc.isEnabled(); if (enabled) { log.info("Registering page provider with name " + name); providers.put(name, desc); } else { contributionRemoved(id, desc); } }
WhereClauseDefinition whereClause = def.getWhereClause(); DocumentModel searchDocumentModel = provider.getSearchDocumentModel(); Object[] parameters = provider.getParameters(); String query; if (whereClause == null) { String pattern = def.getPattern(); if (!quickFiltersClause.isEmpty()) { pattern = appendToPattern(pattern, quickFiltersClause); query = NXQLQueryBuilder.getQuery(pattern, parameters, def.getQuotePatternParameters(), def.getEscapePatternParameters(), searchDocumentModel, null); } else { if (searchDocumentModel == null) {
props.put("pageProviderName", getDefinition().getName()); props.put("searchPattern", getDefinition().getPattern()); props.put("queryParams", getDefinition().getQueryParameters()); props.put("params", getParameters()); WhereClauseDefinition wc = getDefinition().getWhereClause(); if (wc != null) { props.put("whereClause_fixedPart", wc.getFixedPart());
Object[] params = getParameters(); if (def.getWhereClause() == null) { String baseQuery = def.getPattern(); PredicateDefinition[] predicates = def.getWhereClause().getPredicates(); int idxPredicate = 0;
String searchDocType = def.getSearchDocumentType(); if (searchDocType != null) { searchDocumentModel = session.createDocumentModel(searchDocType); } else if (def.getWhereClause() != null) {
Map<String, String> localProps = desc.getProperties(); if (localProps != null) { allProps.putAll(localProps); pageProvider.setSortable(desc.isSortable()); pageProvider.setParameters(parameters); pageProvider.setPageSizeOptions(desc.getPageSizeOptions()); if (searchDocument != null) { pageProvider.setSearchDocumentModel(searchDocument); Long maxPageSize = desc.getMaxPageSize(); if (maxPageSize != null) { pageProvider.setMaxPageSize(maxPageSize.longValue()); pageProvider.setSortInfos(desc.getSortInfos()); } else { pageProvider.setSortInfos(sortInfos); pageProvider.setPageSize(desc.getPageSize()); } else { pageProvider.setPageSize(pageSize.longValue());
PageProviderDefinition ppdefinition = pageProviderService.getPageProviderDefinition( SearchAdapter.pageProviderName); ppdefinition.setPattern(query); if (maxResults != null && !maxResults.isEmpty() && !maxResults.equals("-1")) { ppdefinition.getProperties().put("maxResults", maxResults); if (quickFilters != null && !quickFilters.isEmpty()) { String[] filters = quickFilters.split(","); List<QuickFilter> ppQuickFilters = pageProviderDefinition.getQuickFilters(); for (String filter : filters) { for (QuickFilter quickFilter : ppQuickFilters) {
quickFilterList = new ArrayList<>(); for (String filter : quickFilters) { for (QuickFilter quickFilter : def.getQuickFilters()) { if (quickFilter.getName().equals(filter)) { quickFilterList.add(quickFilter); DocumentModel searchDocumentModel = getSearchDocumentModel(session, def.getName(), namedParameters); return pageProviderService.getPageProvider(def.getName(), def, searchDocumentModel, sortInfos, pageSize, currentPageIndex, props, highlights, quickFilterList, parameters);
/** * Returns results from calls to {@link CoreSession#queryAndFetch(String, String, Object...)} using page providers. * * @since 6.0 */ @SuppressWarnings("unchecked") protected static List<Map<String, Serializable>> getItems(String pageProviderName, CoreSession session, Object... params) { PageProviderService ppService = Framework.getService(PageProviderService.class); if (ppService == null) { throw new RuntimeException("Missing PageProvider service"); } Map<String, Serializable> props = new HashMap<>(); // first retrieve potential props from definition PageProviderDefinition def = ppService.getPageProviderDefinition(pageProviderName); if (def != null) { Map<String, String> defProps = def.getProperties(); if (defProps != null) { props.putAll(defProps); } } props.put(CoreQueryAndFetchPageProvider.CORE_SESSION_PROPERTY, (Serializable) session); PageProvider<Map<String, Serializable>> pp = (PageProvider<Map<String, Serializable>>) ppService.getPageProvider( pageProviderName, null, null, null, props, params); if (pp == null) { throw new NuxeoException("Page provider not found: " + pageProviderName); } return pp.getCurrentPage(); }
/** * @since 7.4 */ protected boolean isTrackingEnabled() { if (tracking != null) { return tracking; } if (getDefinition().isUsageTrackingEnabled()) { tracking = true; } else { String trackedPageProviders = Framework.getProperty(PAGEPROVIDER_TRACK_PROPERTY_NAME, ""); if ("*".equals(trackedPageProviders)) { tracking = true; } else { List<String> pps = Arrays.asList(trackedPageProviders.split(",")); if (pps.contains(getDefinition().getName())) { tracking = true; } else { tracking = false; } } } return tracking; }
@Override public String getContributionId(PageProviderDefinition contrib) { return contrib.getName(); }
String[] params = def.getQueryParameters(); if (params == null) { params = new String[0];
@Override public List<QuickFilter> getAvailableQuickFilters() { return definition != null ? definition.getQuickFilters() : null; }
PageProviderService.class).getPageProviderDefinition(pageProviderName).getSearchDocumentType() : null;
WhereClauseDefinition whereClause = def.getWhereClause(); if (whereClause == null) { String originalPattern = def.getPattern(); String pattern = quickFiltersClause.isEmpty() ? originalPattern : StringUtils.containsIgnoreCase(originalPattern, " WHERE ") : originalPattern + " WHERE " + quickFiltersClause; newQuery = NXQLQueryBuilder.getQuery(pattern, getParameters(), def.getQuotePatternParameters(), def.getEscapePatternParameters(), getSearchDocumentModel(), sortArray); } else {
WhereClauseDefinition whereClause = def.getWhereClause(); if (whereClause == null) { throw new UnsupportedOperationException("This page provider requires a explicit Where Clause"); String originalPattern = def.getPattern(); String pattern = quickFiltersClause.isEmpty() ? originalPattern : StringUtils.containsIgnoreCase(originalPattern, " WHERE ")