@Override public SQLQuery transform(NuxeoPrincipal principal, SQLQuery query) { WhereClause where = query.where; Predicate predicate; if (where == null || where.predicate == null) { predicate = NO_FILE; } else { predicate = new Predicate(NO_FILE, Operator.AND, where.predicate); } return query.withPredicate(predicate); } }
public static List<SortInfo> getSortInfo(String nxql) { final List<SortInfo> sortInfos = new ArrayList<>(); SQLQuery nxqlQuery = getSqlQuery(nxql); nxqlQuery.accept(new DefaultQueryVisitor() { @Override public void visitOrderByExpr(OrderByExpr node) { String name = getFieldName(node.reference.name, null); if (NXQL.ECM_FULLTEXT_SCORE.equals(name)) { name = ES_SCORE_FIELD; } sortInfos.add(new SortInfo(name, !node.isDescending)); } }); return sortInfos; }
@Override public SQLQuery transform(Principal principal, SQLQuery query) { NuxeoPrincipal nuxeoPrincipal = (NuxeoPrincipal) principal; if (!nuxeoPrincipal.isAdministrator() && !StringUtils.equals(principal.getName(), "system")) { List<String> allGroups = nuxeoPrincipal.getAllGroups(); // if restricted profile if (!hasAllowedProfile(allGroups)) { // apply NOT_IN_DOMAIN restriction WhereClause where = query.where; Predicate predicate; if (where == null || where.predicate == null) { predicate = NOT_IN_DOMAIN; } else { predicate = new Predicate(NOT_IN_DOMAIN, Operator.AND, where.predicate); } query = new SQLQuery(query.select, query.from, new WhereClause(predicate), query.groupBy, query.having, query.orderBy, query.limit, query.offset); } } return query; }
protected SQLQuery addIsNotNullClauses(SQLQuery query, Collection<String> names) { List<Predicate> values = names.stream() .map(name -> new Predicate(new Reference(name), Operator.ISNOTNULL, null)) .collect(toList()); Predicate expr = new Predicate(query.where.predicate, Operator.AND, new MultiExpression(Operator.AND, values)); return query.withPredicate(expr); }
public static Map<String, Type> getSelectClauseFields(String nxql) { final Map<String, Type> fieldsAndTypes = new LinkedHashMap<>(); SQLQuery nxqlQuery = getSqlQuery(nxql); nxqlQuery.accept(new DefaultQueryVisitor() { @Override public void visitSelectClause(SelectClause selectClause) { SchemaManager schemaManager = Framework.getService(SchemaManager.class); for (int i = 0; i < selectClause.getSelectList().size(); i++) { Operand op = selectClause.get(i); if (!(op instanceof Reference)) { // ignore it continue; } String name = ((Reference) op).name; Field field = schemaManager.getField(name); fieldsAndTypes.put(name, field == null ? null : field.getType()); } } }); return fieldsAndTypes; }
return query.withPredicate(whereExpr);
builders.add(ret); final ArrayList<String> fromList = new ArrayList<>(); nxqlQuery.accept(new DefaultQueryVisitor() {