/**
* {@inheritDoc}
*/
+ @Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
servletContextEvent.getServletContext().setAttribute("core", this);
try {
/**
* {@inheritDoc}
*/
+ @Override
public void contextDestroyed(ServletContextEvent arg0) {
/* do nothing. */
}
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()));
return super.groups();
}
+ @Override
public Collection<Track> tracks() {
tracksMemoizer.get();
return super.tracks();
super(id);
}
+ @Override
public String name() {
return value("name", String.class).get();
}
+ @Override
public Artist name(String name) {
value("name", String.class).set(name);
return this;
/**
* {@inheritDoc}
*/
+ @Override
@SuppressWarnings("unchecked")
public Collection<Group> groups() {
return value("groups", Collection.class).get();
/**
* {@inheritDoc}
*/
+ @Override
public Artist groups(Collection<Group> groups) {
value("groups", Collection.class).set(groups);
return this;
}
+ @Override
public Collection<Track> tracks() {
return value("tracks", Collection.class).get();
}
}
public String id() {
+ @Override
return id;
}
/**
* {@inheritDoc}
*/
+ @Override
public String name() {
return value("name", String.class).get();
}
/**
* {@inheritDoc}
*/
+ @Override
public Group name(String name) {
value("name", String.class).set(name);
return this;
/**
* {@inheritDoc}
*/
+ @Override
public String url() {
return value("url", String.class).get();
}
/**
* {@inheritDoc}
*/
+ @Override
public Group url(String url) {
value("url", String.class).set(url);
return this;
super(id);
}
+ @Override
public String name() {
return value("name", String.class).get();
}
+ @Override
public DefaultParty name(String name) {
value("name", String.class).set(name);
return this;
super(id);
}
+ @Override
public String name() {
return value("name", String.class).get();
}
+ @Override
public Style name(String name) {
value("name", String.class).set(name);
return this;
super(id);
}
+ @Override
public String name() {
return value("name", String.class).get();
}
+ @Override
public Track name(String name) {
value("name", String.class).set(name);
return this;
}
+ @Override
public List<Artist> artists() {
return value("artists", List.class).get();
}
+ @Override
public Track artists(List<Artist> artists) {
value("artists", List.class).set(artists);
return this;
}
+ @Override
public Collection<Style> styles() {
return value("styles", Collection.class).get();
}
+ @Override
public Track styles(Collection<? extends Style> styles) {
value("styles", Collection.class).set(styles);
return this;