result.setCoordinateSystemReproject(userQuery.getCoordinateSystemReproject()); result.setStartIndex(userQuery.getStartIndex()); result.setSortBy(userQuery.getSortBy());
/** * Extracts List of Sort attributes names from Query * * @param query * @return List of Sort attributes names */ public static List<String> getAttributesOnSort(Query query) { List<String> result = new ArrayList<>(); if (query.getSortBy() == null) return result; for (int i = 0; i < query.getSortBy().length; i++) { result.add(query.getSortBy()[i].getPropertyName().getPropertyName()); } return result; }
SortBy[] sortBy = query.getSortBy(); Integer offset = null, maxFeatures = null; if (sortBy != null && sortBy != SortBy.UNSORTED) {
static SimpleFeatureReader getDelegateReader(SimpleFeatureReader reader, Query query) throws IOException { int maxFeatures = getMaxFeatures(query); return getDelegateReader(reader, query.getSortBy(), maxFeatures); }
SortBy[] original = query.getSortBy(); if (original == null) { return original;
for (GranuleDescriptor g : features) { if (q.getSortBy() == null && maxGranules > 0 && numGranules >= maxGranules) break; final SimpleFeature originator = g.getOriginator(); if (originator != null && filter.evaluate(originator)) filtered.add(originator); if (q.getSortBy() != null) { Comparator<SimpleFeature> comparator = SortedFeatureReader.getComparator(q.getSortBy()); if (comparator != null) { Collections.sort(filtered, comparator);
protected PreparedStatement selectJoinSQLPS( SimpleFeatureType featureType, JoinInfo join, Query query, Connection cx) throws SQLException, IOException { StringBuffer sql = new StringBuffer(); sql.append("SELECT "); selectColumns(featureType, join.getPrimaryAlias(), query, sql); // joined columns for (JoinPart part : join.getParts()) { selectColumns(part.getQueryFeatureType(), part.getAlias(), query, sql); } sql.setLength(sql.length() - 1); dialect.encodePostSelect(featureType, sql); sql.append(" FROM "); // join clauses encodeTableJoin(featureType, join, query, sql); // filtering List<FilterToSQL> toSQLs = encodeWhereJoin(featureType, join, sql); // sorting sort(featureType, query.getSortBy(), join.getPrimaryAlias(), sql); // finally encode limit/offset, if necessary applyLimitOffset(sql, query.getStartIndex(), query.getMaxFeatures()); LOGGER.fine(sql.toString()); PreparedStatement ps = cx.prepareStatement( sql.toString(), ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); ps.setFetchSize(fetchSize); setPreparedFilterValues(ps, toSQLs, cx); return ps; }
sort(featureType, query.getSortBy(), null, sql);
sort(featureType, query.getSortBy(), null, sql);
protected String selectJoinSQL(SimpleFeatureType featureType, JoinInfo join, Query query) throws IOException, SQLException { StringBuffer sql = new StringBuffer(); sql.append("SELECT "); // column names selectColumns(featureType, join.getPrimaryAlias(), query, sql); // joined columns for (JoinPart part : join.getParts()) { selectColumns(part.getQueryFeatureType(), part.getAlias(), query, sql); } sql.setLength(sql.length() - 1); dialect.encodePostSelect(featureType, sql); // from sql.append(" FROM "); // join clauses encodeTableJoin(featureType, join, query, sql); // filtering encodeWhereJoin(featureType, join, sql); // TODO: sorting sort(featureType, query.getSortBy(), join.getPrimaryAlias(), sql); // finally encode limit/offset, if necessary applyLimitOffset(sql, query.getStartIndex(), query.getMaxFeatures()); return sql.toString(); }
/** * Copy contructor. * * @param query the query to copy */ public Query(Query query) { this( query.getTypeName(), query.getNamespace(), query.getFilter(), query.getMaxFeatures(), query.getProperties(), query.getHandle()); this.sortBy = query.getSortBy(); this.coordinateSystem = query.getCoordinateSystem(); this.coordinateSystemReproject = query.getCoordinateSystemReproject(); this.version = query.getVersion(); this.hints = query.getHints(); this.startIndex = query.getStartIndex(); this.alias = query.getAlias(); this.joins = new ArrayList(); for (Join j : query.getJoins()) { this.joins.add(new Join(j)); } }
/** Get features based on the query specified. */ @Override public FeatureCollection<FeatureType, Feature> getFeatures(Query query) throws IOException { GetFeatureRequest request = client.createGetFeatureRequest(); FeatureType schema = dataAccess.getSchema(typeName); QName name = dataAccess.getRemoteTypeName(typeName); request.setTypeName(new QName(query.getTypeName())); request.setFullType(schema); request.setFilter(query.getFilter()); request.setPropertyNames(query.getPropertyNames()); request.setSortBy(query.getSortBy()); String srsName = null; request.setSrsName(srsName); return new WFSContentComplexFeatureCollection(request, schema, name); }
getQuerySchema(queryProperties, unsupportedFilter, fullSchema); final String sortByClause = buildSortByClause(fullSchema, query.getSortBy(), fidReader); final ArcSDEQuery sdeQuery; sdeQuery =
/** * Copy contructor, clones the state of a generic Query into a DefaultQuery * * @param query */ public DefaultQuery(Query query) { this( query.getTypeName(), query.getNamespace(), query.getFilter(), query.getMaxFeatures(), query.getProperties(), query.getHandle()); this.sortBy = query.getSortBy(); this.coordinateSystem = query.getCoordinateSystem(); this.coordinateSystemReproject = query.getCoordinateSystemReproject(); this.version = query.getVersion(); this.hints = query.getHints(); this.startIndex = query.getStartIndex(); this.alias = query.getAlias(); this.joins = query.getJoins(); } }
private Query namedQuery(Query query) { Query namedQuery = namedQuery( query.getFilter(), query.getMaxFeatures(), query instanceof JoiningQuery); namedQuery.setProperties(query.getProperties()); namedQuery.setCoordinateSystem(query.getCoordinateSystem()); namedQuery.setCoordinateSystemReproject(query.getCoordinateSystemReproject()); namedQuery.setHandle(query.getHandle()); namedQuery.setMaxFeatures(query.getMaxFeatures()); namedQuery.setStartIndex(query.getStartIndex()); namedQuery.setSortBy(query.getSortBy()); namedQuery.setHints(query.getHints()); if (query instanceof JoiningQuery) { ((JoiningQuery) namedQuery).setQueryJoins(((JoiningQuery) query).getQueryJoins()); ((JoiningQuery) namedQuery).setRootMapping(((JoiningQuery) query).getRootMapping()); } return namedQuery; }
protected GetFeatureRequest createGetFeature(Query query, ResultType resultType) throws IOException { GetFeatureRequest request = client.createGetFeatureRequest(); final WFSDataStore dataStore = getDataStore(); final QName remoteTypeName = dataStore.getRemoteTypeName(getEntry().getName()); final SimpleFeatureType remoteSimpleFeatureType; remoteSimpleFeatureType = dataStore.getRemoteSimpleFeatureType(remoteTypeName); request.setTypeName(remoteTypeName); request.setFullType(remoteSimpleFeatureType); invertAxisInFilterIfNeeded(query, remoteSimpleFeatureType); request.setFilter(query.getFilter()); request.setResultType(resultType); request.setHints(query.getHints()); int maxFeatures = query.getMaxFeatures(); if (Integer.MAX_VALUE > maxFeatures) { request.setMaxFeatures(maxFeatures); } // let the request decide request.setOutputFormat(outputFormat); request.setPropertyNames(query.getPropertyNames()); request.setSortBy(query.getSortBy()); String srsName = getSupportedSrsName(request, query); request.setSrsName(srsName); return request; }