/** * Requests all records matching the query. * * @param query * never <code>null</code> * @return all records matching the query, may be empty but never <code>null</code> * @throws FilterEvaluationException */ public MetadataResultSet<ISORecord> getRecords( MetadataQuery query ) throws FilterEvaluationException { if ( query == null ) { throw new IllegalArgumentException( "MetadataQuery must not be null!" ); } List<ISORecord> result = applyFilter( query.getFilter(), query.getStartPosition(), query.getMaxRecords() ); return new ListMetadataResultSet( result ); }
protected AbstractWhereBuilder getWhereBuilder( MetadataQuery query, Connection conn ) throws FilterEvaluationException, UnmappableException { return dialect.getWhereBuilder( new ISOPropertyNameMapper( dialect, queryables ), (OperatorFilter) query.getFilter(), query.getSorting(), false ); }
Connection conn = getConnection( true ); try { EOPropertyNameMapper propMapper = new EOPropertyNameMapper( query.getQueryTypeNames(), useLegacyPredicates ); if ( query.getFilter() instanceof IdFilter ) { throw new MetadataStoreException( "ID filters are currently not supported." ); AbstractWhereBuilder wb = new PostGISWhereBuilder( null, propMapper, (OperatorFilter) query.getFilter(), query.getSorting(), false, useLegacyPredicates ); AliasedRIMType returnType = propMapper.getReturnType( query.getReturnTypeNames() ); StringBuilder idSelect = new StringBuilder( "SELECT DISTINCT(" ); idSelect.append( propMapper.getTableAlias( returnType ) ); idSelect.append( wb.getOrderBy().getSQL() ); if ( query != null && query.getStartPosition() != 1 ) { idSelect.append( " OFFSET " ).append( Integer.toString( query.getStartPosition() - 1 ) ); idSelect.append( " LIMIT " ).append( query.getMaxRecords() );
Connection conn = getConnection( true ); try { EOPropertyNameMapper propMapper = new EOPropertyNameMapper( query.getQueryTypeNames(), useLegacyPredicates ); if ( query.getFilter() instanceof IdFilter ) { throw new MetadataStoreException( "ID filters are currently not supported." ); AbstractWhereBuilder wb = new PostGISWhereBuilder( null, propMapper, (OperatorFilter) query.getFilter(), query.getSorting(), false, useLegacyPredicates ); AliasedRIMType returnType = propMapper.getReturnType( query.getReturnTypeNames() ); StringBuilder sql = new StringBuilder( "SELECT COUNT(DISTINCT(" ); sql.append( propMapper.getTableAlias( returnType ) );
if ( query != null && query.getStartPosition() != 1 && dialect.getClass().getSimpleName().equals( "MSSQLDialect" ) ) { String oldHeader = idSelect.toString(); if ( query != null && ( query.getStartPosition() != 1 || query.getMaxRecords() > -1 ) && dialect.getClass().getSimpleName().equals( "OracleDialect" ) ) { String oldHeader = idSelect.toString(); idSelect = new StringBuilder(); idSelect.append( "select * from ( " ); if ( query.getStartPosition() != 1 ) { idSelect.append( "select a.*, ROWNUM rnum from (" ); if ( query != null && query.getStartPosition() != 1 && dialect instanceof PostGISDialect ) { idSelect.append( " OFFSET " ).append( Integer.toString( query.getStartPosition() - 1 ) ); if ( query != null && query.getStartPosition() != 1 && dialect.getClass().getSimpleName().equals( "MSSQLDialect" ) ) { idSelect.append( ") as X1 where X1.rownum > " ); idSelect.append( query.getStartPosition() - 1 ); if ( dialect instanceof PostGISDialect && query != null && query.getMaxRecords() > -1 ) { idSelect.append( " LIMIT " ).append( query.getMaxRecords() ); if ( query != null && ( query.getStartPosition() != 1 || query.getMaxRecords() > -1 ) && dialect.getClass().getSimpleName().equals( "OracleDialect" ) ) { idSelect.append( " ) " ); if ( query.getStartPosition() != 1 ) { idSelect.append( " a " );
@Override public int getRecordCount( MetadataQuery query ) throws MetadataStoreException { try { List<ISORecord> records = storedIsoRecords.getRecords( query.getFilter() ); return records.size(); } catch ( FilterEvaluationException e ) { throw new MetadataStoreException( e ); } }
QName[] queryTypeNames = cswQuery.getQueryTypeNames(); QName[] returnTypeNames = cswQuery.getReturnTypeNames(); query = new MetadataQuery( queryTypeNames, returnTypeNames, constraints, sortProps, startPosition, maxRecords ); } else {
MetadataQuery query = new MetadataQuery( null, null, (OperatorFilter) update.getConstraint(), null, 1, Integer.MIN_VALUE );
mdQuery = new MetadataQuery( getRecordsQuery.getQueryTypeNames(), getRecordsQuery.getReturnTypeNames(), filter, sortCriteria, startPosition, maxRecords );