X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fdemoscenemusic%2Fdata%2FTrack.java;h=32ae937ff9bc78dddac7448e16f55261272d8fc4;hb=3ab2c3dacb41a0ce60169a50c5791b25d179826d;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