X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fdemoscenemusic%2Fdata%2FDataManager.java;h=77f5adeb1de2a30ae39579424ad18d1aaccf1524;hb=3053d869611dfe5c726d3b786ffa0b65e69c96c3;hp=7943401609d28f8a975d32584af2773c13057023;hpb=5f372a5ff952630d8297cfc01d5d2ba1b83a0295;p=demoscenemusic.git diff --git a/src/main/java/net/pterodactylus/demoscenemusic/data/DataManager.java b/src/main/java/net/pterodactylus/demoscenemusic/data/DataManager.java index 7943401..77f5ade 100644 --- a/src/main/java/net/pterodactylus/demoscenemusic/data/DataManager.java +++ b/src/main/java/net/pterodactylus/demoscenemusic/data/DataManager.java @@ -241,22 +241,7 @@ public class DataManager { * if a database error occurs */ public Artist loadProperties(final Artist artist) throws DatabaseException { - Query query = new Query(Type.SELECT, "ARTIST_PROPERTIES"); - query.addField(new Field("ARTIST_PROPERTIES.PROPERTY")); - query.addField(new Field("ARTIST_PROPERTIES.VALUE")); - query.addWhereClause(new ValueFieldWhereClause(new ValueField("ARTIST", new StringParameter(artist.getId())))); - database.process(query, new ResultProcessor() { - - @Override - public void processResult(ResultSet resultSet) throws SQLException { - if (resultSet.isFirst()) { - artist.getProperties().removeAll(); - } - artist.getProperties().set(resultSet.getString("ARTIST_PROPERTIES.PROPERTY"), resultSet.getString("ARTIST_PROPERTIES.VALUE")); - } - - }); - return artist; + return loadProperties(artist, "ARTIST_PROPERTIES", "ARTIST"); } /** @@ -443,6 +428,44 @@ public class DataManager { return database.getMultiple(query, new StringCreator("USER_OPENIDS.OPENID")); } + // + // PRIVATE METHODS + // + + /** + * Loads the properties for the given object. + * + * @param + * The type of the object + * @param object + * The object + * @param table + * The table to load the properties from + * @param type + * The type of the object (“ARTIST,” “TRACK,” etc.) + * @return The object with its properties loaded + * @throws DatabaseException + * if a database error occurs + */ + private T loadProperties(final T object, final String table, String type) throws DatabaseException { + Query query = new Query(Type.SELECT, table); + query.addField(new Field(table + ".PROPERTY")); + query.addField(new Field(table + ".VALUE")); + query.addWhereClause(new ValueFieldWhereClause(new ValueField(type, new StringParameter(object.getId())))); + database.process(query, new ResultProcessor() { + + @Override + public void processResult(ResultSet resultSet) throws SQLException { + if (resultSet.isFirst()) { + object.getProperties().removeAll(); + } + object.getProperties().set(resultSet.getString(table + ".PROPERTY"), resultSet.getString(table + ".VALUE")); + } + + }); + return object; + } + /** * {@link Artist} implementation that retrieves some attributes (such as * {@link #getGroups()}, and {@link #getTracks()}) from the