protected String getQuery( final AssignableCond cond, final List<Object> parameters, final SearchSupport svs) { Realm realm; try { realm = check(cond); } catch (IllegalArgumentException e) { return EMPTY_QUERY; } StringBuilder query = new StringBuilder("SELECT DISTINCT any_id FROM "). append(svs.field().name).append(" WHERE ("); if (cond.isFromGroup()) { realmDAO.findDescendants(realm).forEach(current -> { query.append("realm_id=?").append(setParameter(parameters, current.getKey())).append(" OR "); }); query.setLength(query.length() - 4); } else { for (Realm current = realm; current.getParent() != null; current = current.getParent()) { query.append("realm_id=?").append(setParameter(parameters, current.getKey())).append(" OR "); } query.append("realm_id=?").append(setParameter(parameters, realmDAO.getRoot().getKey())); } query.append(')'); return query.toString(); }
@Override public RealmTO getRealmTO(final Realm realm, final boolean admin) { RealmTO realmTO = new RealmTO(); realmTO.setKey(realm.getKey()); realmTO.setName(realm.getName()); realmTO.setParent(realm.getParent() == null ? null : realm.getParent().getKey()); realmTO.setFullPath(realm.getFullPath()); if (admin) { realmTO.setAccountPolicy(realm.getAccountPolicy() == null ? null : realm.getAccountPolicy().getKey()); realmTO.setPasswordPolicy(realm.getPasswordPolicy() == null ? null : realm.getPasswordPolicy().getKey()); realm.getActions().forEach(action -> { realmTO.getActions().add(action.getKey()); }); realm.getTemplates().forEach(template -> { realmTO.getTemplates().put(template.getAnyType().getKey(), template.get()); }); realm.getResources().forEach(resource -> { realmTO.getResources().add(resource.getKey()); }); } return realmTO; }
if (realm.getParent() != null) { try { handler.handle(realm.getKey());