Suppress some warnings.
[demoscenemusic.git] / src / main / java / net / pterodactylus / demoscenemusic / data / DataManager.java
index c0d458f..b2a3337 100644 (file)
@@ -44,9 +44,13 @@ import net.pterodactylus.util.database.ValueFieldWhereClause;
  */
 public class DataManager {
 
+       @SuppressWarnings("synthetic-access")
        private final ObjectCreator<Artist> artistCreator = new ArtistCreator();
+       @SuppressWarnings("synthetic-access")
        private final ObjectCreator<Group> groupCreator = new GroupCreator();
+       @SuppressWarnings("synthetic-access")
        private final ObjectCreator<Track> trackCreator = new TrackCreator();
+       @SuppressWarnings("synthetic-access")
        private final ObjectCreator<Style> styleCreator = new StyleCreator();
 
        private final Database database;
@@ -85,7 +89,7 @@ public class DataManager {
                return database.getMultiple(query, artistCreator);
        }
 
-       public Track trackById(String id) throws DatabaseException {
+       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))));
@@ -108,12 +112,21 @@ public class DataManager {
                return database.getMultiple(query, groupCreator);
        }
 
+       public Collection<Style> getStylesByTrack(String trackId) throws DatabaseException {
+               Query query = new Query(Type.SELECT, "STYLES");
+               query.addField(new Field("STYLES.*"));
+               query.addJoin(new Join(JoinType.INNER, "TRACK_STYLES", new Field("STYLES.ID"), new Field("TRACK_STYLES.STYLE")));
+               query.addWhereClause(new ValueFieldWhereClause(new ValueField("TRACK_STYLES.TRACK", new StringParameter(trackId))));
+               return database.getMultiple(query, styleCreator);
+       }
+
        private class LazyArtist extends DefaultArtist {
 
                private final Memoizer<Void> tracksMemoizer = new Memoizer<Void>(new Callable<Void>() {
+                       @Override
                        public Void call() throws DatabaseException {
                                if (!hasValue("tracks")) {
-                                       value("tracks", Collection.class).set(getTracksByArtist(id()));
+                                       getValue("tracks", Collection.class).set(getTracksByArtist(getId()));
                                }
                                return null;
                        }
@@ -124,7 +137,7 @@ public class DataManager {
                        @Override
                        public Void call() throws Exception {
                                if (!hasValue("groups")) {
-                                       value("groups", Collection.class).set(getGroupsByArtist(id()));
+                                       getValue("groups", Collection.class).set(getGroupsByArtist(getId()));
                                }
                                return null;
                        }
@@ -139,14 +152,15 @@ public class DataManager {
                 * {@inheritDoc}
                 */
                @Override
-               public Collection<Group> groups() {
+               public Collection<Group> getGroups() {
                        groupsMemoizer.get();
-                       return super.groups();
+                       return super.getGroups();
                }
 
-               public Collection<Track> tracks() {
+               @Override
+               public Collection<Track> getTracks() {
                        tracksMemoizer.get();
-                       return super.tracks();
+                       return super.getTracks();
                }
 
        }
@@ -158,7 +172,7 @@ public class DataManager {
                 */
                @Override
                public Artist createObject(ResultSet resultSet) throws SQLException {
-                       return new LazyArtist(resultSet.getString("ARTISTS.ID")).name(resultSet.getString("ARTISTS.NAME"));
+                       return new LazyArtist(resultSet.getString("ARTISTS.ID")).setName(resultSet.getString("ARTISTS.NAME"));
                }
 
        }
@@ -170,7 +184,7 @@ public class DataManager {
                        @Override
                        public Void call() throws Exception {
                                if (!hasValue("artists")) {
-                                       value("artists", Collection.class).set(getArtistsByGroup(id()));
+                                       getValue("artists", Collection.class).set(getArtistsByGroup(getId()));
                                }
                                return null;
                        }
@@ -185,9 +199,9 @@ public class DataManager {
                 * {@inheritDoc}
                 */
                @Override
-               public Collection<Artist> artists() {
+               public Collection<Artist> getArtists() {
                        artistsMemoizer.get();
-                       return super.artists();
+                       return super.getArtists();
                }
 
        }
@@ -199,7 +213,7 @@ public class DataManager {
                 */
                @Override
                public Group createObject(ResultSet resultSet) throws SQLException {
-                       return new LazyGroup(resultSet.getString("GROUPS.ID")).name(resultSet.getString("GROUPS.NAME")).url(resultSet.getString("GROUPS.URL"));
+                       return new LazyGroup(resultSet.getString("GROUPS.ID")).setName(resultSet.getString("GROUPS.NAME")).setUrl(resultSet.getString("GROUPS.URL"));
                }
 
        }
@@ -211,7 +225,19 @@ public class DataManager {
                        @Override
                        public Void call() throws Exception {
                                if (!hasValue("artists")) {
-                                       value("artists", List.class).set(getArtistsByTrack(id()));
+                                       getValue("artists", List.class).set(getArtistsByTrack(getId()));
+                               }
+                               return null;
+                       }
+
+               });
+
+               private final Memoizer<Void> stylesMemoizer = new Memoizer<Void>(new Callable<Void>() {
+
+                       @Override
+                       public Void call() throws Exception {
+                               if (!hasValue("styles")) {
+                                       getValue("styles", Collection.class).set(getStylesByTrack(getId()));
                                }
                                return null;
                        }
@@ -229,18 +255,18 @@ public class DataManager {
                 * {@inheritDoc}
                 */
                @Override
-               public List<Artist> artists() {
+               public List<Artist> getArtists() {
                        artistsMemoizer.get();
-                       return super.artists();
+                       return super.getArtists();
                }
 
                /**
                 * {@inheritDoc}
                 */
                @Override
-               public Collection<Style> styles() {
-                       // TODO Auto-generated method stub
-                       return super.styles();
+               public Collection<Style> getStyles() {
+                       stylesMemoizer.get();
+                       return super.getStyles();
                }
 
        }
@@ -252,7 +278,7 @@ public class DataManager {
                 */
                @Override
                public Track createObject(ResultSet resultSet) throws SQLException {
-                       return new LazyTrack(resultSet.getString("TRACKS.ID")).name(resultSet.getString("TRACKS.NAME"));
+                       return new LazyTrack(resultSet.getString("TRACKS.ID")).setName(resultSet.getString("TRACKS.NAME"));
                }
 
        }
@@ -264,7 +290,7 @@ public class DataManager {
                 */
                @Override
                public Style createObject(ResultSet resultSet) throws SQLException {
-                       return new DefaultStyle(resultSet.getString("STYLES.ID")).name(resultSet.getString("STYLES.NAME"));
+                       return new DefaultStyle(resultSet.getString("STYLES.ID")).setName(resultSet.getString("STYLES.NAME"));
                }
 
        }