X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=inline;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fdemoscenemusic%2Fdata%2FTrack.java;h=32ae937ff9bc78dddac7448e16f55261272d8fc4;hb=2128592e8c56c539c68b053721e9816cd3633800;hp=77a350a5368c303e1718ce55de905b3801841fce;hpb=4e90fd59ecc3a4843ae32816b4c64222a20d96b8;p=demoscenemusic.git
diff --git a/src/main/java/net/pterodactylus/demoscenemusic/data/Track.java b/src/main/java/net/pterodactylus/demoscenemusic/data/Track.java
index 77a350a..32ae937 100644
--- a/src/main/java/net/pterodactylus/demoscenemusic/data/Track.java
+++ b/src/main/java/net/pterodactylus/demoscenemusic/data/Track.java
@@ -17,36 +17,132 @@
package net.pterodactylus.demoscenemusic.data;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
/**
- * TODO
+ * Data interface for tracks.
*
* @author David âBombeâ Roden
*/
-public class Track extends Base {
+public interface Track extends Base {
- private String name;
- private String style;
+ /**
+ * Defines relationships between tracks.
+ *
+ * @author David âBombeâ Roden
+ */
+ public enum Relationship {
- public Track(String id) {
- super(id);
- }
+ /** The track is the original of a related track. */
+ original,
- public String name() {
- return name;
- }
+ /** The track is a remix of a related track. */
+ remix,
- public Track name(String name) {
- this.name = name;
- return this;
- }
+ /** The track is a cover version of a related track. */
+ cover,
- public String style() {
- return style;
}
- public Track style(String style) {
- this.style = style;
- return this;
- }
+ /**
+ * Returns the name of this track.
+ *
+ * @return The name of this track
+ */
+ public String getName();
+
+ /**
+ * Sets the name of this track.
+ *
+ * @param name
+ * The name of this track
+ * @return This track
+ */
+ public Track setName(String name);
+
+ /**
+ * Returns all artists involved in this track.
+ *
+ * @return All involved artists in preferred order
+ */
+ public List getArtists();
+
+ /**
+ * Sets all artists involved in this track.
+ *
+ * @param artists
+ * All involved artists in preferred order
+ * @return This track
+ */
+ public Track setArtists(List artists);
+
+ /**
+ * Returns all styles of this track.
+ *
+ * @return All styles of this track
+ */
+ public Collection