Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.github.scarpex.argus.common.database.mongodb.handler;
- import com.github.scarpex.argus.Argus;
- import com.github.scarpex.argus.common.database.mongodb.DocumentHandler;
- import com.github.scarpex.argus.common.database.mongodb.collection.DiscordClient;
- import com.github.scarpex.argus.common.language.Language;
- import com.mongodb.MongoClient;
- import com.mongodb.client.MongoCursor;
- import org.bson.Document;
- /**
- * @author Florian Heitzmann
- */
- public class DiscordClientHandler extends DocumentHandler<String> {
- public DiscordClientHandler(MongoClient client) {
- super(client, Argus.DATABASE, "clients");
- loadAll();
- }
- /**
- * Returns true if the discord user is already loaded in cache.
- *
- * @param id the id of the discord user
- * @return
- */
- public boolean contains(String id) {
- return getKeys().contains(id);
- }
- /**
- * Returns the {@link DiscordClient} object of the discord user.
- *
- * @param id the id of the discord user
- * @return
- */
- public DiscordClient getDiscordClient(String id) {
- return toClass(getDocument("id", id), DiscordClient.class);
- }
- /**
- * Creates a {@link DiscordClient} object which get saved and cached.
- *
- * @param id the id of the discord user
- * @param language the language of the discord user
- */
- public void createDiscordClient(String id, Language language) {
- DiscordClient client = new DiscordClient(id, language);
- Document document = toDocument(client);
- insertDocumentIfNotExists("id", id, document);
- cacheDocument(id, document);
- }
- /**
- * Puts the {@link DiscordClient} object back to cache and allows to save the
- * {@link Document} instantly in the database.
- *
- * @param client the id of the discord user
- * @param saveInDatabase true if the document should saved in database
- */
- public void updateDiscordClient(DiscordClient client, boolean saveInDatabase) {
- Document document = toDocument(client);
- cacheDocument(client.getId(), document);
- if (saveInDatabase) {
- updateDocument("id", client.getId(), document);
- }
- }
- /**
- * Loads all profiles.
- */
- private void loadAll() {
- for (MongoCursor<Document> it = getMongoCollection().find().iterator(); it.hasNext();) {
- Document document = it.next();
- DiscordClient client = toClass(document, DiscordClient.class);
- cacheDocument(client.getId(), document);
- }
- }
- /**
- * Saves all cached profiles.
- */
- public void savesAll() {
- getValues().forEach(document -> {
- DiscordClient client = toClass(document, DiscordClient.class);
- updateDocument("id", client.getId(), document);
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement