package net.pterodactylus.demoscenemusic.data;
+import java.util.Collection;
import java.util.List;
-import java.util.Set;
/**
- * TODO
+ * Default implementation of a track data container.
*
* @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
*/
public class DefaultTrack extends DefaultBase implements Track {
+ /**
+ * Creates a new track data container.
+ *
+ * @param id
+ * The ID of the track
+ */
public DefaultTrack(String id) {
super(id);
}
- public String name() {
- return value("name", String.class).get();
+ //
+ // TRACK METHODS
+ //
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String getName() {
+ return getValue("name", String.class).get();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Track setName(String name) {
+ getValue("name", String.class).set(name);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ @SuppressWarnings("unchecked")
+ public List<Artist> getArtists() {
+ return getValue("artists", List.class).get();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Track setArtists(List<Artist> artists) {
+ getValue("artists", List.class).set(artists);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ @SuppressWarnings("unchecked")
+ public Collection<Style> getStyles() {
+ return getValue("styles", Collection.class).get();
}
- public Track name(String name) {
- value("name", String.class).set(name);
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Track setStyles(Collection<? extends Style> styles) {
+ getValue("styles", Collection.class).set(styles);
return this;
}
- public List<Artist> artists() {
- return value("artists", List.class).get();
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String getRemix() {
+ return getValue("remix", String.class).get();
}
- public Track artists(List<Artist> artists) {
- value("artists", List.class).set(artists);
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Track setRemix(String remix) {
+ getValue("remix", String.class).set(remix);
return this;
}
- public Set<Style> styles() {
- return value("styles", Set.class).get();
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ @SuppressWarnings("unchecked")
+ public List<Artist> getRemixArtists() {
+ return getValue("remixArtists", List.class).get();
}
- public Track styles(Set<? extends Style> styles) {
- value("styles", Set.class).set(styles);
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Track setRemixArtists(List<Artist> remixArtists) {
+ getValue("remixArtists", List.class).set(remixArtists);
return this;
}