import java.util.Collection;
import java.util.List;
+import java.util.Map;
/**
- * 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);
}
+ //
+ // 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();
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public Track setStyles(Collection<? extends Style> styles) {
getValue("styles", Collection.class).set(styles);
return this;
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String getRemix() {
+ return getValue("remix", String.class).get();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Track setRemix(String remix) {
+ getValue("remix", String.class).set(remix);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ @SuppressWarnings("unchecked")
+ public List<Artist> getRemixArtists() {
+ return getValue("remixArtists", List.class).get();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Track setRemixArtists(List<Artist> remixArtists) {
+ getValue("remixArtists", List.class).set(remixArtists);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ @SuppressWarnings("unchecked")
+ public Collection<TrackDerivative> getDerivatives() {
+ return getValue("derivatives", Collection.class).get();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Track setDerivatives(Collection<TrackDerivative> derivatives) {
+ getValue("derivatives", Collection.class).set(derivatives);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ @SuppressWarnings("unchecked")
+ public Map<Relationship, Collection<Track>> getRelatedTracks() {
+ return getValue("relatedTracks", Map.class).get();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Track setRelatedTracks(Map<Relationship, Collection<Track>> relatedTracks) {
+ getValue("relatedTracks", Map.class).set(relatedTracks);
+ return this;
+ }
+
}