/** * Create new {@code Search} object with default kind to {@link KIND#AND}. * * @return Search helper */ public static Search query() { Search search = query(KIND.AND); return search; }
/** * Or (sub query). * * @return sub query */ public Search or() { Search search = Search.query(KIND.OR); subSearchs.add(search); return search; }
/** * And (sub query). * * @return sub query */ public Search and() { Search search = Search.query(KIND.AND); subSearchs.add(search); return search; }
protected static Search q() { return Search.query(); }
/** * Create a new query on an existing criteria to add new constraints to * the existing criteria. * * @param criteria the existing criteria * @return a new query to add constraints to the criteria. */ public static Search query(Criteria criteria) { Search search = query(); if (criteria != null) { search.restrictions.add(criteria.getRestriction()); } return search; }
@Override public List<String> findByCriteria(String securityToken, List<Criteria> criteria) { List<String> result = new ArrayList<String>(criteria.size()); List<Criteria> criteriaLimit = new ArrayList<Criteria>(criteria.size()); for (Criteria c : criteria) { Criteria climit = Search.query(c).criteria().setFirstIndex(0).setEndIndex(1); criteriaLimit.add(climit); } List<PagedResult<String>> idsList = findAllByCriteria( securityToken, criteriaLimit); for (PagedResult<String> ids : idsList) { if (ids.size() > 0) { result.add(ids.getFirst()); } else { result.add(null); } } if (criteria.size() != result.size()) { log.error(String.format("Criteria input list (%s) has not same size that result list (%s)", criteria.size(), result.size())); } return result; }
/** * get the id of a user given his login. * * @param login the login of the user to search for * @return a wikitty id * @deprecated since 3.4 {@link #getUserWikittyId(org.nuiton.wikitty.WikittyClient, java.lang.String) } */ @Deprecated static public String getUserWikittyId(WikittyProxy proxy, String login) { String userWikittyId = null; Wikitty user = proxy.findByCriteria(Search.query().eq( WikittyUser.FQ_FIELD_WIKITTYUSER_LOGIN, login).criteria()); if (user != null) { userWikittyId = user.getWikittyId(); } return userWikittyId; }
/** * Recherche le premier objet qui a ce label * @param proxy * @param label * @return * @deprecated since 3.4 use {@link #findByLabel(org.nuiton.wikitty.WikittyClient, java.lang.String) } */ @Deprecated static public Wikitty findByLabel(WikittyProxy proxy, String label) { WikittyLabelImpl l = new WikittyLabelImpl(); l.addLabels(label); Criteria criteria = Search.query(l.getWikitty()).criteria(); Wikitty result = proxy.findByCriteria(criteria); return result; }
Search search = Search.query(criteria); search = search.exteq(extensions);
List<Criteria> criteriaLimit = new ArrayList<Criteria>(criteria.size()); for (Criteria c : criteria) { Criteria cLimit = Search.query(c).criteria() .setFirstIndex(0).setEndIndex(1); criteriaLimit.add(cLimit);
public <E extends BusinessEntity> List<E> findByCriteria( Class<E> clazz, List<Criteria> criterias) { long start = TimeLog.getTime(); List<E> result = null; if (criterias != null) { BusinessEntityImpl sample = (BusinessEntityImpl) WikittyUtil.newInstance(clazz); Wikitty wikitty = sample.getWikitty(); Collection<String> extensions = wikitty.getExtensionNames(); List<Criteria> serviceCriterias = new ArrayList<Criteria>(criterias.size()); for (Criteria criteria : criterias) { Search search = Search.query(criteria); search = search.exteq(extensions); criteria = search.criteria(); serviceCriterias.add(criteria); } List<String> id = findIdByCriteria(serviceCriterias); result = restore(clazz, id); } timeLog.log(start, "multiFindByCriteria<Business>(List>"); return result; }
/** * Recherche tous les objets qui ont ce label * * @param proxy * @param label * @param firstIndex * @param endIndex * @return * @deprecated since 3.4 use {@link #findAllByLabel(org.nuiton.wikitty.WikittyClient, java.lang.String, int, int) } */ @Deprecated static public PagedResult<Wikitty> findAllByLabel(WikittyProxy proxy, String label, int firstIndex, int endIndex) { WikittyLabelImpl l = new WikittyLabelImpl(); l.addLabels(label); Criteria criteria = Search.query(l.getWikitty()).criteria() .setFirstIndex(firstIndex).setEndIndex(endIndex); PagedResult<Wikitty> result = proxy.findAllByCriteria(criteria); return result; }
/** * Null field are not used in search request. * * @param e sample wikitty * @return */ public <E extends BusinessEntityImpl> E findByExample(E e) { long start = TimeLog.getTime(); Criteria criteria = Search.query(e.getWikitty()).criteria(); String id = findIdByCriteria(criteria); E result = null; if (id != null) { Wikitty w = wikittyService.restore(securityToken, id); result = (E) WikittyUtil.newInstance( securityToken, wikittyService, e.getClass(), w); } timeLog.log(start, "findByExample"); return result; }
/** * Null field are not used in search request. * * @param e sample wikitty * @param firstIndex * @param endIndex * @param fieldFacet * @return */ public <E extends BusinessEntityImpl> PagedResult<E> findAllByExample(E e, int firstIndex, int endIndex, String ... fieldFacet ) { long start = TimeLog.getTime(); Criteria criteria = Search.query(e.getWikitty()).criteria() .setFirstIndex(firstIndex).setEndIndex(endIndex) .setFacetField(fieldFacet); PagedResult<String> pagedResult = findAllIdByCriteria(criteria); // we can use autoconvert = true because search by example add automaticaly // restriction on extension PagedResult<E> result = (PagedResult<E>)pagedResult.cast( this, e.getClass(), true); timeLog.log(start, "findAllByExample<limit>"); return result; }
/** * Check that the logged in user is in a group. A #SecurityException might * be thrown at runtime if the #WikittyUser session timed out. * @param groupName the name of the group to check * @return true is the logged in user is in the group */ public boolean isMember(String groupName) { long start = TimeLog.getTime(); boolean result = false; WikittyUser user = getLoggedInUser(); //Find the group from its name Search search = Search.query() .eq(Element.ELT_EXTENSION, WikittyGroup.EXT_WIKITTYGROUP) .eq(WikittyGroup.FQ_FIELD_WIKITTYGROUP_NAME, groupName); Criteria criteria = search.criteria(); Wikitty group = findByCriteria(criteria); if (group != null && user != null) { result = WikittySecurityUtil.isMember(wikittyService, securityToken, user.getWikittyId(), group.getWikittyId()); } timeLog.log(start, "isMember"); return result; }
Search result = Search.query(); result.kind = KIND.AND;