mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-28 08:26:44 +00:00
Added method to get leaderboards from the database which aren't in a group
This commit is contained in:
+2
@@ -32,4 +32,6 @@ public interface DomainObjectFactory {
|
||||
|
||||
Iterable<LeaderboardGroup> getAllLeaderboardGroups();
|
||||
|
||||
Iterable<Leaderboard> getLeaderboardsNotInGroup();
|
||||
|
||||
}
|
||||
|
||||
+23
-2
@@ -212,7 +212,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory {
|
||||
@Override
|
||||
public Iterable<LeaderboardGroup> getAllLeaderboardGroups() {
|
||||
DBCollection leaderboardGroupCollection = database.getCollection(CollectionNames.LEADERBOARD_GROUPS.name());
|
||||
ArrayList<LeaderboardGroup> leaderboardGroups = new ArrayList<LeaderboardGroup>();
|
||||
Set<LeaderboardGroup> leaderboardGroups = new HashSet<LeaderboardGroup>();
|
||||
|
||||
try {
|
||||
for (DBObject o : leaderboardGroupCollection.find()) {
|
||||
@@ -231,7 +231,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory {
|
||||
|
||||
String name = (String) o.get(FieldNames.LEADERBOARD_GROUP_NAME.name());
|
||||
String description = (String) o.get(FieldNames.LEADERBOARD_GROUP_DESCRIPTION.name());
|
||||
ArrayList<Leaderboard> leaderboards = new ArrayList<>();
|
||||
ArrayList<Leaderboard> leaderboards = new ArrayList<Leaderboard>();
|
||||
|
||||
BasicDBList dbLeaderboardIds = (BasicDBList) o.get(FieldNames.LEADERBOARD_GROUP_LEADERBOARDS.name());
|
||||
for (Object object : dbLeaderboardIds) {
|
||||
@@ -243,4 +243,25 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory {
|
||||
return new LeaderboardGroupImpl(name, description, leaderboards);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<Leaderboard> getLeaderboardsNotInGroup() {
|
||||
DBCollection leaderboardCollection = database.getCollection(CollectionNames.LEADERBOARDS.name());
|
||||
DBCollection leaderboardGroupCollection = database.getCollection(CollectionNames.LEADERBOARD_GROUPS.name());
|
||||
|
||||
Set<Leaderboard> result = new HashSet<Leaderboard>();
|
||||
try {
|
||||
for (DBObject o : leaderboardCollection.find()) {
|
||||
ObjectId leaderboardId = (ObjectId) o.get("_id");
|
||||
BasicDBObject query = new BasicDBObject(FieldNames.LEADERBOARD_GROUP_LEADERBOARDS.name(), leaderboardId);
|
||||
if (leaderboardGroupCollection.count(query) == 0) {
|
||||
result.add(loadLeaderboard(o));
|
||||
}
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
logger.log(Level.SEVERE, "Error connecting to MongoDB, unable to load leaderboards.");
|
||||
logger.throwing(DomainObjectFactoryImpl.class.getName(), "getAllLeaderboards", t);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user