From 369331b3851327b78154c678a5f9dc936e0fc511 Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Mon, 30 Jul 2012 10:58:20 +0200 Subject: [PATCH] Add methods that create, load, and save parties. --- .../demoscenemusic/data/DataManager.java | 91 ++++++++++++++++++++++ 1 file changed, 91 insertions(+) diff --git a/src/main/java/net/pterodactylus/demoscenemusic/data/DataManager.java b/src/main/java/net/pterodactylus/demoscenemusic/data/DataManager.java index 0251d62..bcfbb18 100644 --- a/src/main/java/net/pterodactylus/demoscenemusic/data/DataManager.java +++ b/src/main/java/net/pterodactylus/demoscenemusic/data/DataManager.java @@ -618,6 +618,97 @@ public class DataManager { } /** + * Returns the party with the given ID. + * + * @param partyId + * The ID of the party + * @return The party with the given ID + * @throws DatabaseException + * if a database error occurs + */ + public Party getPartyById(String partyId) throws DatabaseException { + Query query = new Query(Type.SELECT, "PARTIES"); + query.addField(new Field("PARTIES.*")); + query.addWhereClause(new ValueFieldWhereClause(new ValueField("PARTIES.ID", new StringParameter(partyId)))); + return loadPartyProperties(database.getSingle(query, partyCreator)); + } + + /** + * Loads the properties of the given party. + * + * @param party + * The party to load the properties for + * @return The party with its properties loaded + * @throws DatabaseException + * if a database error occurs + */ + public Party loadPartyProperties(Party party) throws DatabaseException { + return loadProperties(party, "PARTY_PROPERTIES", "PARTY"); + } + + /** + * Loads the properties of the given parties. + * + * @param parties + * The parties to load the properties for + * @return The parties with their properties loaded + * @throws DatabaseException + * if a database error occurs + */ + public List loadPartyProperties(List parties) throws DatabaseException { + for (Party party : parties) { + loadPartyProperties(party); + } + return parties; + } + + /** + * Saves the given party. + * + * @param party + * The party to save + * @throws DatabaseException + * if a database error occurs + */ + public void saveParty(Party party) throws DatabaseException { + Query query = new Query(Type.UPDATE, "PARTIES"); + query.addValueField(new ValueField("NAME", new StringParameter(party.getName()))); + query.addWhereClause(new ValueFieldWhereClause(new ValueField("ID", new StringParameter(party.getId())))); + database.update(query); + savePartyProperties(party); + } + + /** + * Saves the properties of the given party. + * + * @param party + * The party whose properties to save + * @throws DatabaseException + * if a database error occurs + */ + public void savePartyProperties(Party party) throws DatabaseException { + saveProperties(party.getProperties(), "PARTY_PROPERTIES", "PARTY", party.getId()); + } + + /** + * Creates a new party with the given name. + * + * @param name + * The name of the party + * @return The new party + * @throws DatabaseException + * if a database error occurs + */ + public Party createParty(String name) throws DatabaseException { + Query query = new Query(Type.INSERT, "PARTIES"); + String id = UUID.randomUUID().toString(); + query.addValueField(new ValueField("ID", new StringParameter(id))); + query.addValueField(new ValueField("NAME", new StringParameter(name))); + database.insert(query); + return getPartyById(id); + } + + /** * Returns the user with the given name. * * @param username -- 2.7.4