@Override public boolean isFetchingDataRows() { return mdDelegate.isFetchingDataRows(); }
public boolean isFetchingDataRows() { return metadata.isFetchingDataRows(); }
/** * Creates a PaginatedQuery that returns a single page from an existing cached * server-side result list. */ public RangeQuery(String cacheKey, int fetchStartIndex, int fetchLimit, QueryMetadata rootMetadata) { this.cacheKey = cacheKey; this.fetchStartIndex = fetchStartIndex; this.fetchLimit = fetchLimit; this.fetchingDataRows = rootMetadata.isFetchingDataRows(); this.prefetchTree = rootMetadata.getPrefetchTree(); }
public boolean isFetchingDataRows() { if (!overrideExists(QueryMetadata.FETCHING_DATA_ROWS_PROPERTY)) { return info.isFetchingDataRows(); } Boolean b = (Boolean) overrides.get(QueryMetadata.FETCHING_DATA_ROWS_PROPERTY); return b != null && b.booleanValue(); }
@Override IncrementalFaultList<E>.IncrementalListHelper createHelper(QueryMetadata metadata) { if (metadata.isFetchingDataRows()) { return new SingleIdDataRowListHelper(); } else { return new SingleIdPersistentListHelper(); } }
/** * @since 3.0 */ IncrementalListHelper createHelper(QueryMetadata metadata) { if (metadata.isFetchingDataRows()) { return new DataRowListHelper(); } else { return new PersistentListHelper(); } }
private void runQuery() { // reset this.fullResponse = new GenericResponse(); this.response = this.fullResponse; this.queriesByNode = null; this.queriesByExecutedQueries = null; // whether this is null or not will driver further decisions on how to process // prefetched rows this.prefetchResultsByPath = metadata.getPrefetchTree() != null && !metadata.isFetchingDataRows() ? new HashMap() : null; // categorize queries by node and by "executable" query... query.route(this, domain.getEntityResolver(), null); // run categorized queries if (queriesByNode != null) { Iterator nodeIt = queriesByNode.entrySet().iterator(); while (nodeIt.hasNext()) { Map.Entry entry = (Map.Entry) nodeIt.next(); QueryEngine nextNode = (QueryEngine) entry.getKey(); Collection nodeQueries = (Collection) entry.getValue(); nextNode.performQueries(nodeQueries, this); } } }
private void runQuery() { // reset this.fullResponse = new GenericResponse(); this.response = this.fullResponse; this.queriesByNode = null; this.queriesByExecutedQueries = null; // whether this is null or not will driver further decisions on how to process prefetched rows this.prefetchResultsByPath = metadata.getPrefetchTree() != null && !metadata.isFetchingDataRows() ? new HashMap<String, List>() : null; // categorize queries by node and by "executable" query... query.route(this, domain.getEntityResolver(), null); // run categorized queries if (queriesByNode != null) { for (Map.Entry<QueryEngine, Collection<Query>> entry : queriesByNode.entrySet()) { QueryEngine nextNode = entry.getKey(); Collection<Query> nodeQueries = entry.getValue(); nextNode.performQueries(nodeQueries, this); } } }
private boolean interceptIncrementalListConversion() { int pageSize = serverMetadata.getPageSize(); if (pageSize > 0 && serverMetadata.getCacheKey() != null) { List list = response.firstList(); if (list.size() > pageSize && list instanceof IncrementalFaultList) { // cache channel.addPaginatedResult( serverMetadata.getCacheKey(), ((IncrementalFaultList) list)); // extract and convert firts page List sublist = list.subList(0, pageSize); List firstPage = (serverMetadata.isFetchingDataRows()) ? new ArrayList( sublist) : toClientObjects(sublist); this.response = new IncrementalListResponse(firstPage, list.size()); return DONE; } } return !DONE; }
private boolean interceptIncrementalListConversion() { int pageSize = serverMetadata.getPageSize(); if (pageSize > 0 && serverMetadata.getCacheKey() != null) { List list = response.firstList(); if (list.size() > pageSize && list instanceof IncrementalFaultList) { // cache channel.getQueryCache().put(serverMetadata, list); // extract and convert first page // TODO: andrus, 2008/03/05 - we no longer resolve the first page // automatically on the server... probably should not do it for the client // either... One rare case when this is completely undesirable is // subaction execution from 'interceptSinglePageQuery', as it doesn't even // care about the first page... List sublist = list.subList(0, pageSize); List firstPage = (serverMetadata.isFetchingDataRows()) ? new ArrayList(sublist) : toClientObjects(sublist); this.response = new IncrementalListResponse(firstPage, list.size()); return DONE; } } return !DONE; }
if (targetContext != null && !metadata.isFetchingDataRows()) {
@SuppressWarnings("unchecked") private void interceptObjectConversion() { if (context != null && !metadata.isFetchingDataRows()) { List mainRows = response.firstList(); // List<DataRow> or List<Object[]> if (mainRows != null && !mainRows.isEmpty()) { ObjectConversionStrategy<?> converter; List<Object> rsMapping = metadata.getResultSetMapping(); if (rsMapping == null) { converter = new SingleObjectConversionStrategy(); } else { if (metadata.isSingleResultSetMapping()) { if (rsMapping.get(0) instanceof EntityResultSegment) { converter = new SingleObjectConversionStrategy(); } else { converter = new SingleScalarConversionStrategy(); } } else { converter = new MixedConversionStrategy(); } } converter.convert(mainRows); } } }
@SuppressWarnings("unchecked") @Override public <T> ResultIterator<T> iterator(final Select<T> query) { final ResultIterator<?> rows = performIteratedQuery(query); final QueryMetadata md = query.getMetaData(getEntityResolver()); if (md.isFetchingDataRows() || isObjectArrayResult(md)) { // no need to convert result return (ResultIterator<T>) rows; } else { // this is a bit optimized version of 'objectFromDataRow' with // resolver cached for reuse... still the rest is pretty suboptimal final ObjectResolver resolver = new ObjectResolver(this, md.getClassDescriptor(), true); return new DataRowResultIterator(rows, resolver); } }
this.internalQuery.setFetchingDataRows(metadata.isFetchingDataRows()); this.internalQuery.setResolvingInherited(metadata.isResolvingInherited()); if (metadata.isFetchingDataRows()) { helper = new DataRowListHelper(); if (!metadata.isFetchingDataRows() && (query instanceof SelectQuery)) { SelectQuery select = (SelectQuery) query;
/** * Copies values of this object to another SelectInfo object. */ void copyFromInfo(QueryMetadata info) { this.lastEntityResolver = null; this.lastRoot = null; this.objEntity = null; this.dbEntity = null; this.dataMap = null; this.fetchingDataRows = info.isFetchingDataRows(); this.fetchLimit = info.getFetchLimit(); this.pageSize = info.getPageSize(); this.refreshingObjects = info.isRefreshingObjects(); this.resolvingInherited = info.isResolvingInherited(); this.cachePolicy = info.getCachePolicy(); this.cacheKey = info.getCacheKey(); setPrefetchTree(info.getPrefetchTree()); }
/** * Copies values of another QueryMetadata object to this object. */ void copyFromInfo(QueryMetadata info) { this.lastEntityResolver = null; this.lastRoot = null; this.classDescriptor = null; this.dbEntity = null; this.dataMap = null; this.fetchingDataRows = info.isFetchingDataRows(); this.fetchLimit = info.getFetchLimit(); this.pageSize = info.getPageSize(); this.cacheStrategy = info.getCacheStrategy(); this.cacheKey = info.getCacheKey(); this.cacheGroup = info.getCacheGroup(); this.resultSetMapping = info.getResultSetMapping(); setPrefetchTree(info.getPrefetchTree()); }
private void interceptObjectConversion() { if (context != null && !metadata.isFetchingDataRows()) {
private void interceptObjectConversion() { if (!serverMetadata.isFetchingDataRows()) { GenericResponse clientResponse = new GenericResponse(); for (response.reset(); response.next();) { if (response.isList()) { List serverObjects = response.currentList(); clientResponse.addResultList(toClientObjects(serverObjects)); } else { clientResponse.addBatchUpdateCount(response.currentUpdateCount()); } } this.response = clientResponse; } }
private void interceptObjectConversion() { if (!serverMetadata.isFetchingDataRows()) { GenericResponse clientResponse = new GenericResponse(); for (response.reset(); response.next();) { if (response.isList()) { List serverObjects = response.currentList(); clientResponse.addResultList(toClientObjects(serverObjects)); } else { clientResponse.addBatchUpdateCount(response.currentUpdateCount()); } } this.response = clientResponse; } }
this.internalQuery.setFetchingDataRows(metadata.isFetchingDataRows()); this.internalQuery.setPrefetchTree(metadata.getPrefetchTree());