public int getRowCount() { return (selectQuery != null) ? selectQuery.getOrderings().size() : 0; }
Ordering getOrdering(int row) { return selectQuery.getOrderings().get(row); }
void addOrdering() { String orderingPath = getSelectedPath(); if (orderingPath == null) { return; } // check if such ordering already exists for (Ordering ord : selectQuery.getOrderings()) { if (orderingPath.equals(ord.getSortSpecString())) { return; } } selectQuery.addOrdering(new Ordering(orderingPath, SortOrder.ASCENDING)); int index = selectQuery.getOrderings().size() - 1; OrderingModel model = (OrderingModel) table.getModel(); model.fireTableRowsInserted(index, index); mediator.fireQueryEvent(new QueryEvent(SelectQueryOrderingTab.this, selectQuery)); }
public Boolean isValidParameterNames(SelectQueryDescriptor query) { if (query.getQualifier() == null) { return true; } Map<String, String> queryParameters = queriesMap.get(query.getName()); if (queryParameters == null) { try { queryParameters = getParameterNames(query.getQualifier(), query.getRoot()); } catch (Exception e) { // if we have wrong path in queryParameters return false. return false; } } for (Ordering ordering : query.getOrderings()) { // validate paths in ordering String path = ordering.getSortSpecString(); Iterator<CayenneMapEntry> it = ((ObjEntity) query.getRoot()).resolvePathComponents(path); while (it.hasNext()) { try { it.next(); } catch (ExpressionException e) { // if we have wrong path in orderings return false. return false; } } } return true; }
@Override public SelectQuery<?> buildQuery() { SelectQuery<Object> selectQuery = new SelectQuery<>(); selectQuery.setRoot(this.getRoot()); selectQuery.setName(this.getName()); selectQuery.setDataMap(dataMap); selectQuery.setQualifier(this.getQualifier()); List<Ordering> orderings = this.getOrderings(); if (orderings != null && !orderings.isEmpty()) { selectQuery.addOrderings(orderings); } List<String> prefetches = this.getPrefetches(); if (prefetches != null && !prefetches.isEmpty()) { for (String prefetch : prefetches) { selectQuery.addPrefetch(prefetch); } } // init properties selectQuery.initWithProperties(this.getProperties()); return selectQuery; }
void validate(SelectQueryDescriptor query, ValidationResult validationResult) { validateName(query, validationResult); validateCacheGroup(query, validationResult); // Resolve root to Entity for further validation Entity root = validateRoot(query, validationResult); // validate path-based parts if (root != null) { validateQualifier(root, query.getQualifier(), validationResult); for (final Ordering ordering : query.getOrderings()) { validateOrdering(query, root, ordering, validationResult); } if (query.getPrefetches() != null) { for (String prefetchPath : query.getPrefetches()) { validatePrefetch(root, prefetchPath, validationResult); } } } }