// ------------------------------------------------------------------------- public MarketDataSnapshotSearchResult search(final MarketDataSnapshotSearchRequest request) { ArgumentChecker.notNull(request, "request"); ArgumentChecker.notNull(request.getPagingRequest(), "request.pagingRequest"); ArgumentChecker.notNull(request.getVersionCorrection(), "request.versionCorrection"); s_logger.debug("search {}", request); final MarketDataSnapshotSearchResult result = new MarketDataSnapshotSearchResult(); final VersionCorrection vc = request.getVersionCorrection().withLatestFixed(now()); final DbMapSqlParameterSource args = new DbMapSqlParameterSource(); args.addTimestamp("version_as_of_instant", vc.getVersionAsOf()); args.addTimestamp("corrected_to_instant", vc.getCorrectedTo()); args.addValueNullIgnored("name", getDialect().sqlWildcardAdjustValue(request.getName())); args.addValue("details", request.isIncludeData()); args.addValue("paging_offset", request.getPagingRequest().getFirstItem()); args.addValue("paging_fetch", request.getPagingRequest().getPagingSize()); String[] sql = { getElSqlBundle().getSql("Search", args), getElSqlBundle().getSql("SearchCount", args) }; searchWithPaging( request.getPagingRequest(), sql, args, new MarketDataSnapshotDocumentExtractor(request.isIncludeData()), result); return result; }
/** * Adds an instant to this source unless the object is null. * * @param name the name, not null * @param instantProvider the instant, not null * @return this, for chaining, not null */ public DbMapSqlParameterSource addTimestampNullIgnored( final String name, final InstantProvider instantProvider) { if (instantProvider != null) { addTimestamp(name, instantProvider); } else { addValue(name, null, Types.TIMESTAMP); } return this; }