@Override
public PagedResult<TO> search(final AnyQuery anyQuery) {
String realm = StringUtils.prependIfMissing(anyQuery.getRealm(), SyncopeConstants.ROOT_REALM);
boolean isAssignableCond = StringUtils.isBlank(anyQuery.getFiql())
? false
: -1 != anyQuery.getFiql().indexOf(SpecialAttr.ASSIGNABLE.toString());
SearchCond searchCond = StringUtils.isBlank(anyQuery.getFiql())
? null
: getSearchCond(anyQuery.getFiql(), realm);
Pair<Integer, List<TO>> result = getAnyLogic().search(
searchCond,
anyQuery.getPage(),
anyQuery.getSize(),
getOrderByClauses(anyQuery.getOrderBy()),
isAssignableCond ? SyncopeConstants.ROOT_REALM : realm,
anyQuery.getDetails());
return buildPagedResult(result.getRight(), anyQuery.getPage(), anyQuery.getSize(), result.getLeft());
}