X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fdemoscenemusic%2Fdata%2FTrack.java;h=cb9249fd97883a3a0ce9f0df0f658902dad3968c;hb=1e2c5a3d82db1f6c93adddd79b77278222979eca;hp=ace6bd349eecde12a1ac3d25b4f00d4777d79500;hpb=7da3008f2142348efd4efc21c5ce36a018227d6e;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 ace6bd3..cb9249f 100644 --- a/src/main/java/net/pterodactylus/demoscenemusic/data/Track.java +++ b/src/main/java/net/pterodactylus/demoscenemusic/data/Track.java @@ -19,24 +19,163 @@ 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 interface Track extends Base { + /** + * Defines relationships between tracks. + * + * @author David ‘Bombe’ Roden + */ + public enum Relationship { + + /** The track is the original of a related track. */ + original, + + /** The track is a remix of a related track. */ + remix, + + /** The track is a cover version of a related track. */ + cover, + + } + + /** + * 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