@Override public <T> T findById(WeblinkId weblinkId, EntityViewSetting<T, ? extends QueryBuilder<T,?>> setting) { try { CriteriaBuilder<Weblink> cb = cbf.create(em, Weblink.class) .where("id").eq(weblinkId); return evm.applySetting(setting, cb).getSingleResult(); } catch (NoResultException ex) { return null; } }
@Override public <T> T findByName(String weblinkGroupName, EntityViewSetting<T, ? extends QueryBuilder<T,?>> setting) { try { CriteriaBuilder<WeblinkGroup> cb = cbf.create(em, WeblinkGroup.class) .where("id").eq(weblinkGroupName); return evm.applySetting(setting, cb).getSingleResult(); } catch (NoResultException ex) { return null; } }
@Override public <T> T findByKey(String key, EntityViewSetting<T, ? extends QueryBuilder<T,?>> setting) { if (key == null) { return null; } try { CriteriaBuilder<Account> cb = cbf.create(em, Account.class) .where("key").eq(key); return evm.applySetting(setting, cb).getSingleResult(); } catch (NoResultException ex) { return null; } }
@Override public <T> T findByKey(String key, EntityViewSetting<T, ? extends QueryBuilder<T,?>> setting) { if (key == null) { return null; } try { CriteriaBuilder<Account> cb = cbf.create(em, Account.class) .where("key").eq(key); return evm.applySetting(setting, cb).getSingleResult(); } catch (NoResultException ex) { return null; } }
@Override public <T> T findById(String id, EntityViewSetting<T, ? extends QueryBuilder<T,?>> setting) { if (id == null) { return null; } try { CriteriaBuilder<StorageQuotaModel> cb = cbf.create(em, StorageQuotaModel.class) .where("id").eq(id); return evm.applySetting(setting, cb).getSingleResult(); } catch (NoResultException ex) { return null; } }
@Override public <T> T findById(StorageId storageId, EntityViewSetting<T, ? extends QueryBuilder<T,?>> setting) { if (storageId == null) { return null; } try { CriteriaBuilder<Storage> cb = cbf.create(em, Storage.class) .where("id").eq(storageId); setting.addOptionalParameter("storageProviderFactoryDataAccess", storageProviderFactoryDataAccess); return evm.applySetting(setting, cb).getSingleResult(); } catch (NoResultException ex) { return null; } }
@Override public <T> T findById(BucketObjectId bucketObjectId, EntityViewSetting<T, ? extends QueryBuilder<T,?>> setting) { try { CriteriaBuilder<BucketObject> cb = cbf.create(em, BucketObject.class) .where("id").eq(bucketObjectId) .where("state").eq(BucketObjectState.CREATED); return evm.applySetting(setting, cb).getSingleResult(); } catch (NoResultException ex) { return null; } }
@Override public <T> T findByName(String bucketName, EntityViewSetting<T, ? extends QueryBuilder<T,?>> setting) { try { CriteriaBuilder<Bucket> cb = cbf.create(em, Bucket.class) .where("id").eq(bucketName) .where("deleted").eqExpression("false"); return evm.applySetting(setting, cb).getSingleResult(); } catch (NoResultException ex) { return null; } }
@Override public <T> T findByName(String weblinkGroupName, String prefix, Integer limit, String marker, EntityViewSetting<T, ? extends QueryBuilder<T,?>> setting) { if (limit == null) { limit = 1000; } else if (limit > 1000) { throw new IllegalArgumentException("Limit may not exceed 1000!"); } try { CriteriaBuilder<WeblinkGroup> cb = cbf.create(em, WeblinkGroup.class) .where("id").eq(weblinkGroupName); if (prefix != null && !prefix.isEmpty()) { cb.where("links.id.name").like().value(prefix.replaceAll("%", "\\%") + "%").escape('\\'); } if (marker != null && !marker.isEmpty()) { cb.where("links.id.name").gt(marker); } // TODO: implement constraint and marker in query and also for passing into entity views setting.addOptionalParameter("prefix", prefix); setting.addOptionalParameter("constraint", limit); setting.addOptionalParameter("marker", marker); cb.setMaxResults(limit); return evm.applySetting(setting, cb).getSingleResult(); } catch (NoResultException ex) { return null; } }
@Override public <T> T findByOwnerAndName(Account account, String securityGroupName, EntityViewSetting<T, ? extends QueryBuilder<T, ?>> setting) { if (account == null) { return null; } try { CriteriaBuilder<WeblinkSecurityGroup> cb = cbf.create(em, WeblinkSecurityGroup.class) .where("name").eq(securityGroupName) .where("owner.id").eq(account.getId()); return evm.applySetting(setting, cb).getSingleResult(); } catch (NoResultException ex) { return null; } }
setting.addOptionalParameter("marker", marker); cb.setMaxResults(limit); return evm.applySetting(setting, cb).getSingleResult(); } catch (NoResultException ex) { return null;
@Override public <T> T findByIdForDispatch(WeblinkId weblinkId, EntityViewSetting<T, ? extends QueryBuilder<T,?>> setting) { try { CriteriaBuilder<Weblink> cb = cbf.create(em, Weblink.class) .where("id").eq(weblinkId) .whereOr() .where("expirationTime").isNull() .where("expirationTime").gtExpression("CURRENT_TIMESTAMP") .endOr(); return evm.applySetting(setting, cb).getSingleResult(); } catch (NoResultException ex) { return null; } }