Rename method.
[demoscenemusic.git] / src / main / java / net / pterodactylus / demoscenemusic / data / DataManager.java
index 0c6f422..482e717 100644 (file)
@@ -47,6 +47,7 @@ public class DataManager {
        private final ObjectCreator<Artist> artistCreator = new ArtistCreator();
        private final ObjectCreator<Group> groupCreator = new GroupCreator();
        private final ObjectCreator<Track> trackCreator = new TrackCreator();
+       private final ObjectCreator<Style> styleCreator = new StyleCreator();
 
        private final Database database;
 
@@ -75,7 +76,16 @@ public class DataManager {
                return database.getMultiple(query, artistCreator);
        }
 
-       public Track trackById(String id) throws DatabaseException {
+       public List<Artist> getArtistsByTrack(String trackId) throws DatabaseException {
+               Query query = new Query(Type.SELECT, "ARTISTS");
+               query.addField(new Field("ARTISTS.*"));
+               query.addJoin(new Join(JoinType.INNER, "TRACK_ARTISTS", new Field("TRACK_ARTISTS.ARTIST"), new Field("ARTISTS.ID")));
+               query.addWhereClause(new ValueFieldWhereClause(new ValueField("TRACK_ARTISTS.TRACK", new StringParameter(trackId))));
+               query.addOrderField(new OrderField(new Field("TRACK_ARTISTS.DISPLAY_ORDER")));
+               return database.getMultiple(query, artistCreator);
+       }
+
+       public Track getTrackById(String id) throws DatabaseException {
                Query query = new Query(Type.SELECT, "TRACKS");
                query.addField(new Field("TRACKS.*"));
                query.addWhereClause(new ValueFieldWhereClause(new ValueField("TRACKS.ID", new StringParameter(id))));
@@ -247,4 +257,16 @@ public class DataManager {
 
        }
 
+       private class StyleCreator implements ObjectCreator<Style> {
+
+               /**
+                * {@inheritDoc}
+                */
+               @Override
+               public Style createObject(ResultSet resultSet) throws SQLException {
+                       return new DefaultStyle(resultSet.getString("STYLES.ID")).name(resultSet.getString("STYLES.NAME"));
+               }
+
+       }
+
 }