public DescriptorStore(MongoDatabase database, IPermissionStore permissionStore, IUserStore userStore, IGroupStore groupStore, IDocumentBuilder documentBuilder, Class<T> documentType) { RuntimeUtilities.checkNotNull(database, "database"); RuntimeUtilities.checkNotNull(permissionStore, "permissionStore"); MongoCollection<Document> descriptorCollection = database.getCollection(COLLECTION_DESCRIPTORS); MongoResourceStorage<T> resourceStorage = new MongoResourceStorage<>(database, collectionName, documentBuilder, documentType); this.descriptorResourceStore = new ModifiableHistorizedResourceStore<>(resourceStorage); this.resourceFilter = new ResourceFilter<>(descriptorCollection, descriptorResourceStore, permissionStore, userStore, groupStore, documentBuilder, documentType); }