/** * @return Currently loaded number of results in paged result. */ public int getCurrentResultsCount() { return pagedResult == null ? 0 : pagedResult.getResult().size(); }
@Override public int indexOf(Object o) { int index = getPagedResult().getResult().indexOf(o); if(index == -1) { throw new IllegalArgumentException("This object isn't currently fetched. Retrieving via data loader isn't implemented yet. Object o = " + o); } return index; } }
@SuppressWarnings({ "rawtypes", "unchecked" }) private boolean isEmpty(Object result) { if (result instanceof ArrayList) { return ((ArrayList) result).size() <= 0; } else if (result instanceof Collection) { return ((Collection) result).size() <= 0; } else if (result instanceof PagedResult<?>) { if (((PagedResult<List<?>>) result).getResult() instanceof List<?>) { return ((PagedResult<List<?>>) result).getResult().size() <= 0; } } throw new SecurityException("A Collection or an array (or null) was required as the " + "returnedObject, but the returnedObject was: " + result); } }
public T findUnique(Page requestedPage) { //reseting the page to unlimited page requestedPage.setStartIndex(0); requestedPage.setPageSize(Page.ALL_RESULTS); List<T> result = findAll(requestedPage).getResult(); if (result == null || result.size() == 0) { throw new RuntimeException("Unable to obtain unique result. No results found!"); } if (result.size() > 1) { throw new RuntimeException("Unable to obtain unique result. More results found!"); } return result.get(0); }
/** * @return Index of the last result in cached paged results. */ protected int getEndIndex() { return pagedResult.getPage().getStartIndex() + pagedResult.getResult().size() - 1; }
private E getFromLoadedPageResult(int index) { int fetchIndex = index % getPagedResult().getPage().getPageSize(); // System.out.println("get " + index); return getPagedResult().getResult().get(fetchIndex); }
@Override public UserData getUserByOpenIDIdentifier(String identifier) { Page page = new Page(0, Page.ALL_RESULTS); page.setFilterable(new SimpleExpression<Comparable<? extends Serializable>>("id", identifier, Filter.EQ)); List<OpenIDUserData> result = openIDUserDao.findAll(page).getResult(); if (result.size() > 0) { return result.get(0).getUser(); } return null; }
@Override public List<OpenIDProvider> findProvidersByUserName(String userName) { Page page = new Page(0, Page.ALL_RESULTS); page.setFilterable(new SimpleExpression<Comparable<? extends Serializable>>( OpenIDUserData.USER + "." + UserData.USERNAME, userName, Filter.EQ)); List<OpenIDProvider> result = new ArrayList<OpenIDProvider>(); List<OpenIDUserData> found = openIDUserDao.findAll(page).getResult(); for (OpenIDUserData hasOpenIDIdentifier : found) { result.add(hasOpenIDIdentifier.getProvider()); } return result; }
@Override public CountryData findByCountry(String country) { Page page = new Page(0, 1); // TODO: switch to @BeanWrapper SimpleExpression<Comparable<? extends Serializable>> eq = Filter.eq(CountryData.COUNTRY); eq.setValue(country); page.setFilterable(eq); List<CountryData> result = countryDao.findAll(page).getResult(); if (result.size() == 0) { return null; } return result.get(0); }
@Override public List<WebSitesData> getWebSites(String webId) { Page page = Page.ALL_RESULTS_PAGE; page.setFilterable(Filter.eq(HasWebId.WEB_ID).setValue(webId)); return webSitesDao.findAll(page).getResult(); }
@Override public List<WebSitesData> findWebSitesByDomain(String domain) { Page page = new Page(0, Page.ALL_RESULTS); page.setFilterable(Filter.eq(WebSitesData.DOMAIN, domain)); return webSitesDao.findAll(page).getResult(); }
private WebSettingsData loadWebSettings(String webId, boolean createDefault) { Page page = new Page(0, 1); // TODO: switch to @BeanWrapper page.setFilterable(Filter.eq(HasWebId.WEB_ID).setValue(webId)); List<? extends WebSettingsData> result = webSettingsDao.findAll(page).getResult(); if (result.size() == 0) { if (createDefault) { return createDefaultSettings(webId); } else { return null; } } WebSettingsData webSettings = result.get(0); webSettings.getMetaData().size(); return webSettings; }
protected UserData getUserByOpenIDIdentifier(OpenIDLoginToken token) { Page page = new Page(0, Page.ALL_RESULTS); page.setFilterable(new SimpleExpression<Comparable<? extends Serializable>>("id", token.getIdentifier(), Filter.EQ)); List<OpenIDUserData> result = openIDUserDao.findAll(page).getResult(); if (result != null && result.size() > 0) { return convertToDTO(result.get(0).getUser(), tokenConverter != null ? tokenConverter.convert(token, result.get(0).getUser()) : token); } return null; }
@Override public void deleteWebSites(String webId) { Page page = new Page(); page.setFilterable(Filter.eq(HasWebId.WEB_ID, webId)); PagedResult<List<WebSitesData>> all = webSitesDao.findAll(page); for(WebSitesData webSite : all.getResult()) { webSitesDao.remove(webSite); } }
/** * Returns element directly if it is within fetched (cached) page, else throw exception. * * @see java.util.List#get(int) */ public E get(int index) throws IndexOutOfBoundsException { if (index < 0) throw new IndexOutOfBoundsException("Index (" + index + ") shouldn't be less than 0"); if (isOutOfCachedPagedResult(index)) { throw new IndexOutOfBoundsException( "Index should be within range <" + getPagedResult().getPage().getStartIndex() + " ; " + getEndIndex() + ">"); } int fetchIndex = index % getPagedResult().getPage().getPageSize(); // System.out.println("get " + index); return getPagedResult().getResult().get(fetchIndex); }
/** * Returns element directly if it is within fetched page, else fetch a new * page if available. * * @see java.util.List#get(int) */ public E get(int index) throws IndexOutOfBoundsException { if (index < 0) throw new IndexOutOfBoundsException("Index (" + index + ") shouldn't be less than 0"); if (isOutOfCachedPagedResult(index)) { int nearestStartIndex = getNearestIndexToPageSize(index, defaultPageSize); fetchPage(new Page(nearestStartIndex, defaultPageSize)); // System.out.println("fetch " + index); } if (index >= getPagedResult().getTotalResultCount()) throw new IndexOutOfBoundsException("Index (" + index + ") shouldn't be greater than total number of elements."); int fetchIndex = index % getPagedResult().getPage().getPageSize(); // System.out.println("get " + index); return getPagedResult().getResult().get(fetchIndex); }
@Override public List<WebSettingsData> loadWebSettingsContainsParams(List<String> params) { Page page = new Page(0, Page.ALL_RESULTS); Disjunction disjunction = Filter.disjunction(); for (String param : params) { disjunction.add(Filter.like(WebSettingsData.PARAMETERS).setValue(param)); } page.setFilterable(disjunction); return webSettingsDao.findAll(page).getResult(); } }
@Override public void deleteWebSites(String webId, String domain) { Page page = new Page(); Conjunction c = Filter.conjunction(); c.add(Filter.eq(WebSitesData.DOMAIN, domain)); c.add(Filter.eq(WebSitesData.WEB_ID, webId)); page.setFilterable(c); PagedResult<List<WebSitesData>> all = webSitesDao.findAll(page); for(WebSitesData webSite : all.getResult()) { webSitesDao.remove(webSite); } } }
@Override public List<HierarchyPermissionData> findSecurityPermissions(Integer parentId, String webId) { Page page = new Page(0, 0); if (null == parentId) { Conjunction filterable = Filter.conjunction(); filterable.add(Filter.isNull(HierarchyPermissionData.PARENT)); SimpleExpression<Comparable<? extends Serializable>> eq = Filter.eq(HierarchyPermissionData.WEB_ID); eq.setValue(webId); filterable.add(eq); page.setFilterable(filterable); } else { Conjunction filterable = Filter.conjunction(); //FIXME, interface inheritance SimpleExpression<Comparable<? extends Serializable>> eq = Filter.eq(HierarchyPermissionData.PARENT + ".id"); eq.setValue(parentId); filterable.add(eq); eq = Filter.eq(HierarchyPermissionData.WEB_ID); eq.setValue(webId); filterable.add(eq); page.setFilterable(filterable); } return securityPermissionDao.findAll(page).getResult(); } }