return trackLoader.all();
}
+ public Collection<Group> getGroupsByArtist(String artistId) throws DatabaseException {
+ Query query = new Query(Type.SELECT, "GROUPS");
+ query.addField(new Field("GROUPS.*"));
+ query.addJoin(new Join(JoinType.INNER, "GROUP_ARTISTS", new Field("GROUPS.ID"), new Field("GROUP_ARTISTS.GROUP_")));
+ query.addWhereClause(new ValueFieldWhereClause(new ValueField("GROUP_ARTISTS.ARTIST", new StringParameter(artistId))));
+ return database.getMultiple(query, DefaultGroup.CREATOR);
+ }
+
private class TrackLoader implements ResultProcessor {
private final List<Track> loadedTracks = new ArrayList<Track>();
private class LazyArtist extends DefaultArtist {
- private final Memoizer<Void> tracks = new Memoizer<Void>(new Callable<Void>() {
+ private final Memoizer<Void> tracksMemoizer = new Memoizer<Void>(new Callable<Void>() {
public Void call() throws DatabaseException {
if (!hasValue("tracks")) {
value("tracks", Collection.class).set(getTracksByArtist(id()));
}
public Collection<Track> tracks() {
- tracks.get();
+ tracksMemoizer.get();
return super.tracks();
}