@Override public Pagination<M> get(final Long offset, final Long limit, final InternalTenantContext context) { return paginationHelper.getPagination(realSqlDao, new PaginationIteratorBuilder<M, E, EntitySqlDao<M, E>>() { @Override public Long getCount(final EntitySqlDao<M, E> sqlDao, final InternalTenantContext context) { // Only need to compute it once, because no search filter has been applied (see DefaultPaginationSqlDaoHelper) return null; } @Override public Iterator<M> build(final EntitySqlDao<M, E> sqlDao, final Long offset, final Long limit, final Ordering ordering, final InternalTenantContext context) { return sqlDao.get(offset, limit, getNaturalOrderingColumns(), ordering.toString(), context); } }, offset, limit, context); }
public EntityDaoBase(final EntitySqlDaoTransactionalJdbiWrapper transactionalSqlDao, final Class<? extends EntitySqlDao<M, E>> realSqlDao) { this.transactionalSqlDao = transactionalSqlDao; this.realSqlDao = realSqlDao; this.paginationHelper = new DefaultPaginationSqlDaoHelper(transactionalSqlDao); try { final Type genericSuperclass = this.getClass().getGenericSuperclass(); targetExceptionClass = (genericSuperclass instanceof ParameterizedType) ? (Class<U>) Class.forName(((ParameterizedType) genericSuperclass).getActualTypeArguments()[2].getTypeName()) : null; // Mock class } catch (final ClassNotFoundException e) { throw new RuntimeException(e); } }
@Override public Pagination<TagModelDao> searchTags(final String searchKey, final Long offset, final Long limit, final InternalTenantContext context) { return paginationHelper.getPagination(TagSqlDao.class, new PaginationIteratorBuilder<TagModelDao, Tag, TagSqlDao>() { @Override public Long getCount(final TagSqlDao tagSqlDao, final InternalTenantContext context) { return tagSqlDao.getSearchCount(searchKey, String.format("%%%s%%", searchKey), context); } @Override public Iterator<TagModelDao> build(final TagSqlDao tagSqlDao, final Long offset, final Long limit, final Ordering ordering, final InternalTenantContext context) { return tagSqlDao.search(searchKey, String.format("%%%s%%", searchKey), offset, limit, ordering.toString(), context); } }, offset, limit, context); } }
public EntityDaoBase(final EntitySqlDaoTransactionalJdbiWrapper transactionalSqlDao, final Class<? extends EntitySqlDao<M, E>> realSqlDao) { this.transactionalSqlDao = transactionalSqlDao; this.realSqlDao = realSqlDao; this.paginationHelper = new DefaultPaginationSqlDaoHelper(transactionalSqlDao); try { final Type genericSuperclass = this.getClass().getGenericSuperclass(); targetExceptionClass = (genericSuperclass instanceof ParameterizedType) ? (Class<U>) Class.forName(((ParameterizedType) genericSuperclass).getActualTypeArguments()[2].getTypeName()) : null; // Mock class } catch (final ClassNotFoundException e) { throw new RuntimeException(e); } }
@Override public Pagination<SubscriptionBundleModelDao> searchSubscriptionBundles(final String searchKey, final Long offset, final Long limit, final InternalTenantContext context) { return paginationHelper.getPagination(BundleSqlDao.class, new PaginationIteratorBuilder<SubscriptionBundleModelDao, SubscriptionBaseBundle, BundleSqlDao>() { @Override public Long getCount(final BundleSqlDao bundleSqlDao, final InternalTenantContext context) { return bundleSqlDao.getSearchCount(searchKey, String.format("%%%s%%", searchKey), context); } @Override public Iterator<SubscriptionBundleModelDao> build(final BundleSqlDao bundleSqlDao, final Long offset, final Long limit, final Ordering ordering, final InternalTenantContext context) { return bundleSqlDao.search(searchKey, String.format("%%%s%%", searchKey), offset, limit, ordering.toString(), context); } }, offset, limit, context); }
@Override public Pagination<CustomFieldModelDao> searchCustomFields(final String searchKey, final Long offset, final Long limit, final InternalTenantContext context) { return paginationHelper.getPagination(CustomFieldSqlDao.class, new PaginationIteratorBuilder<CustomFieldModelDao, CustomField, CustomFieldSqlDao>() { @Override public Long getCount(final CustomFieldSqlDao customFieldSqlDao, final InternalTenantContext context) { return customFieldSqlDao.getSearchCount(searchKey, String.format("%%%s%%", searchKey), context); } @Override public Iterator<CustomFieldModelDao> build(final CustomFieldSqlDao customFieldSqlDao, final Long offset, final Long limit, final Ordering ordering, final InternalTenantContext context) { return customFieldSqlDao.search(searchKey, String.format("%%%s%%", searchKey), offset, limit, ordering.toString(), context); } }, offset, limit, context); } }
return paginationHelper.getPagination(AccountSqlDao.class, new PaginationIteratorBuilder<AccountModelDao, Account, AccountSqlDao>() { @Override
@Override public Pagination<SubscriptionBundleModelDao> searchSubscriptionBundles(final String searchKey, final Long offset, final Long limit, final InternalTenantContext context) { return paginationHelper.getPagination(BundleSqlDao.class, new PaginationIteratorBuilder<SubscriptionBundleModelDao, SubscriptionBaseBundle, BundleSqlDao>() { @Override public Long getCount(final BundleSqlDao bundleSqlDao, final InternalTenantContext context) { return bundleSqlDao.getSearchCount(searchKey, String.format("%%%s%%", searchKey), context); } @Override public Iterator<SubscriptionBundleModelDao> build(final BundleSqlDao bundleSqlDao, final Long offset, final Long limit, final Ordering ordering, final InternalTenantContext context) { return bundleSqlDao.search(searchKey, String.format("%%%s%%", searchKey), offset, limit, ordering.toString(), context); } }, offset, limit, context); }
@Override public Pagination<TagModelDao> searchTags(final String searchKey, final Long offset, final Long limit, final InternalTenantContext context) { return paginationHelper.getPagination(TagSqlDao.class, new PaginationIteratorBuilder<TagModelDao, Tag, TagSqlDao>() { @Override public Long getCount(final TagSqlDao tagSqlDao, final InternalTenantContext context) { return tagSqlDao.getSearchCount(searchKey, String.format("%%%s%%", searchKey), context); } @Override public Iterator<TagModelDao> build(final TagSqlDao tagSqlDao, final Long offset, final Long limit, final Ordering ordering, final InternalTenantContext context) { return tagSqlDao.search(searchKey, String.format("%%%s%%", searchKey), offset, limit, ordering.toString(), context); } }, offset, limit, context); } }
@Override public Pagination<M> get(final Long offset, final Long limit, final InternalTenantContext context) { return paginationHelper.getPagination(realSqlDao, new PaginationIteratorBuilder<M, E, EntitySqlDao<M, E>>() { @Override public Long getCount(final EntitySqlDao<M, E> sqlDao, final InternalTenantContext context) { // Only need to compute it once, because no search filter has been applied (see DefaultPaginationSqlDaoHelper) return null; } @Override public Iterator<M> build(final EntitySqlDao<M, E> sqlDao, final Long offset, final Long limit, final Ordering ordering, final InternalTenantContext context) { return sqlDao.get(offset, limit, getNaturalOrderingColumns(), ordering.toString(), context); } }, offset, limit, context); }
@Override public Pagination<CustomFieldModelDao> searchCustomFields(final String searchKey, final Long offset, final Long limit, final InternalTenantContext context) { return paginationHelper.getPagination(CustomFieldSqlDao.class, new PaginationIteratorBuilder<CustomFieldModelDao, CustomField, CustomFieldSqlDao>() { @Override public Long getCount(final CustomFieldSqlDao customFieldSqlDao, final InternalTenantContext context) { return customFieldSqlDao.getSearchCount(searchKey, String.format("%%%s%%", searchKey), context); } @Override public Iterator<CustomFieldModelDao> build(final CustomFieldSqlDao customFieldSqlDao, final Long offset, final Long limit, final Ordering ordering, final InternalTenantContext context) { return customFieldSqlDao.search(searchKey, String.format("%%%s%%", searchKey), offset, limit, ordering.toString(), context); } }, offset, limit, context); } }
@Override public Pagination<InvoiceModelDao> searchInvoices(final String searchKey, final Long offset, final Long limit, final InternalTenantContext context) { Integer invoiceNumberParsed = null; try { invoiceNumberParsed = Integer.parseInt(searchKey); } catch (final NumberFormatException ignored) { } final Integer invoiceNumber = invoiceNumberParsed; return paginationHelper.getPagination(InvoiceSqlDao.class, new PaginationIteratorBuilder<InvoiceModelDao, Invoice, InvoiceSqlDao>() { @Override public Long getCount(final InvoiceSqlDao invoiceSqlDao, final InternalTenantContext context) { return invoiceNumber != null ? 1L : invoiceSqlDao.getSearchCount(searchKey, String.format("%%%s%%", searchKey), context); } @Override public Iterator<InvoiceModelDao> build(final InvoiceSqlDao invoiceSqlDao, final Long offset, final Long limit, final DefaultPaginationSqlDaoHelper.Ordering ordering, final InternalTenantContext context) { try { return invoiceNumber != null ? ImmutableList.<InvoiceModelDao>of(getByNumber(invoiceNumber, context)).iterator() : invoiceSqlDao.search(searchKey, String.format("%%%s%%", searchKey), offset, limit, ordering.toString(), context); } catch (final InvoiceApiException ignored) { return ImmutableSet.<InvoiceModelDao>of().iterator(); } } }, offset, limit, context); }
return paginationHelper.getPagination(AccountSqlDao.class, new PaginationIteratorBuilder<AccountModelDao, Account, AccountSqlDao>() { @Override