@Override public Set<Stream> loadByIds(Collection<String> streamIds) { final Set<ObjectId> objectIds = streamIds.stream() .map(ObjectId::new) .collect(Collectors.toSet()); final DBObject query = QueryBuilder.start("_id").in(objectIds).get(); return ImmutableSet.copyOf(loadAll(query)); }
@Override public void doRun() { LOG.debug("Starting alarm callbacks migration"); final DBObject selection = QueryBuilder.start("id").exists(true).get(); final DBObject modifications = new BasicDBObject("$unset", new BasicDBObject("id", "")); this.dbCollection.updateMulti(selection, modifications); LOG.debug("Done with alarm callbacks migration"); }
@Override public List<Stream> loadAllWithConfiguredAlertConditions() { final DBObject query = QueryBuilder.start().and( QueryBuilder.start(StreamImpl.EMBEDDED_ALERT_CONDITIONS).exists(true).get(), QueryBuilder.start(StreamImpl.EMBEDDED_ALERT_CONDITIONS).not().size(0).get() ).get(); return loadAll(query); }
private List<DBObject> buildAuthorIdConditions(Map<String, String> authorIds) { List<DBObject> conditions = new ArrayList<>(); for (Entry<String, String> idEntry : authorIds.entrySet()) { QueryBuilder ids = new QueryBuilder().put("m.contributors.ids"); QueryBuilder id = QueryBuilder.start(); id.put("scheme").is(idEntry.getKey()); id.put("value").is(idEntry.getValue()); ids.elemMatch(id.get()); conditions.add(ids.get()); } return conditions; }
private List<DBObject> buildHierarchyLevelConditions(Map<String, String> hierarchyLevels) { List<DBObject> conditions = new ArrayList<>(); for (Entry<String, String> hierarchyLevel : hierarchyLevels.entrySet()) { QueryBuilder structure = new QueryBuilder().put("m.structures"); QueryBuilder hierarchyLevelQuery = QueryBuilder.start(); hierarchyLevelQuery.put("hierarchy").is(hierarchyLevel.getKey()); hierarchyLevelQuery.put("current.level").is(hierarchyLevel.getValue()); structure.elemMatch(hierarchyLevelQuery.get()); conditions.add(structure.get()); } return conditions; }
@Override public List<Stream> loadAllWithConfiguredAlertConditions() { final DBObject query = QueryBuilder.start().and( QueryBuilder.start(StreamImpl.EMBEDDED_ALERT_CONDITIONS).exists(true).get(), QueryBuilder.start(StreamImpl.EMBEDDED_ALERT_CONDITIONS).not().size(0).get() ).get(); return loadAll(query); }
private void addTypeToUntypedRecords() { DBObject q = new QueryBuilder().put("type").exists(false).get(); BasicDBObject o = new BasicDBObject("$set", new BasicDBObject("type", RecordType.changeSetExecution.name())); getMongeezCollection().update(q, o, false, true, WriteConcern.SAFE); }
@Override public CloseableIteration<Statement, QueryEvaluationException> queryInstantEqualsInstant( final TemporalInstant queryInstant, final StatementConstraints constraints) throws QueryEvaluationException { final QueryBuilder qb = QueryBuilder.start(INSTANT) .is(queryInstant.getAsDateTime().toDate()); return withConstraints(constraints, qb.get()); }
@Override public CloseableIteration<Statement, QueryEvaluationException> queryText( final String query, final StatementConstraints constraints) throws IOException { final QueryBuilder qb = QueryBuilder.start().text(query); return withConstraints(constraints, qb.get()); }
@Override public CloseableIteration<Statement, QueryEvaluationException> queryIntervalBefore(final TemporalInterval query, final StatementConstraints constraints) throws QueryEvaluationException { final QueryBuilder qb = QueryBuilder.start(INTERVAL_END) .lessThan(query.getHasBeginning().getAsDateTime().toDate()); return withConstraints(constraints, qb.get()); }
@Override public List<Scope> findByResourceServer(String resourceServerId) { DBObject query = new QueryBuilder() .and("resourceServerId").is(resourceServerId) .get(); return getMongoStore().loadEntities(ScopeEntity.class, query, getInvocationContext()).stream() .map(scope -> findById(scope.getId(), scope.getResourceServerId())) .collect(toList()); }
@Override public CloseableIteration<Statement, QueryEvaluationException> queryIntervalAfter(final TemporalInterval query, final StatementConstraints constraints) throws QueryEvaluationException { final QueryBuilder qb = QueryBuilder.start(INTERVAL_START) .greaterThan(query.getHasEnd().getAsDateTime().toDate()); return withConstraints(constraints, qb.get()); }
public static List<MongoRoleEntity> getAllScopesOfTemplate(ClientTemplateModel template, MongoStoreInvocationContext invContext) { ClientTemplateEntity scopedEntity = ((ClientTemplateAdapter)template).getMongoEntity(); List<String> scopeIds = scopedEntity.getScopeIds(); if (scopeIds == null || scopeIds.isEmpty()) { return Collections.emptyList(); } DBObject query = new QueryBuilder() .and("_id").in(scopeIds) .get(); return invContext.getMongoStore().loadEntities(MongoRoleEntity.class, query, invContext); } }
@Override public void grantToAllUsers(RealmModel realm, RoleModel role) { DBObject query = new QueryBuilder() .and("realmId").is(realm.getId()) .get(); DBObject update = new QueryBuilder() .and("$push").is(new BasicDBObject("roleIds", role.getId())) .get(); int count = getMongoStore().updateEntities(MongoUserEntity.class, query, update, invocationContext); }
@Override public void preRemove(RealmModel realm, GroupModel group) { // Remove this role from all users, which has it DBObject query = new QueryBuilder() .and("groupIds").is(group.getId()) .get(); DBObject pull = new BasicDBObject("$pull", query); getMongoStore().updateEntities(MongoUserEntity.class, query, pull, invocationContext); }
@Override public CloseableIteration<Statement, QueryEvaluationException> queryInstantInsideInterval( final TemporalInterval givenInterval, final StatementConstraints constraints) throws QueryEvaluationException { final QueryBuilder qb = QueryBuilder.start(INSTANT) .greaterThan(givenInterval.getHasBeginning().getAsDateTime().toDate()) .lessThan(givenInterval.getHasEnd().getAsDateTime().toDate()); return withConstraints(constraints, qb.get()); }
@Override public List<String> getMembership(RealmModel realm, GroupModel group, int firstResult, int max) { QueryBuilder queryBuilder = new QueryBuilder() .and("realmId").is(realm.getId()); queryBuilder.and("groupIds").is(group.getId()); List<FederatedUser> users = getMongoStore().loadEntities(FederatedUser.class, queryBuilder.get(), null, firstResult, max, invocationContext); List<String> ids = new LinkedList<>(); for (FederatedUser user : users) ids.add(user.getId()); return ids; }
private void onUserRemoved(RealmModel realm, String userId) { DBObject query = new QueryBuilder() .and("userId").is(userId) .get(); getMongoStore().removeEntities(MongoOnlineUserSessionEntity.class, query, false, invocationContext); getMongoStore().removeEntities(MongoOfflineUserSessionEntity.class, query, false, invocationContext); }
@Override public List<UserModel> searchForUserByUserAttribute(String attrName, String attrValue, RealmModel realm) { QueryBuilder queryBuilder = new QueryBuilder() .and("realmId").is(realm.getId()); queryBuilder.and("attributes." + attrName).is(attrValue); List<MongoUserEntity> users = getMongoStore().loadEntities(MongoUserEntity.class, queryBuilder.get(), invocationContext); return convertUserEntities(realm, users); }
@Override public ClientModel getClientByClientId(String clientId, RealmModel realm) { DBObject query = new QueryBuilder() .and("realmId").is(realm.getId()) .and("clientId").is(clientId) .get(); MongoClientEntity appEntity = getMongoStore().loadSingleEntity(MongoClientEntity.class, query, invocationContext); if (appEntity == null) return null; return session.realms().getClientById(appEntity.getId(), realm); }