--- /dev/null
+/*
+ * DemosceneMusic - Track.java - Copyright © 2012 David Roden
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package net.pterodactylus.demoscenemusic.data;
+
+/**
+ * TODO
+ *
+ * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
+ */
+public abstract class AbstractTrack extends Base implements Track {
+
+ private String name;
+
+ private String style;
+
+ public AbstractTrack(String id) {
+ super(id);
+ }
+
+ public String name() {
+ return name;
+ }
+
+ public Track name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ public String style() {
+ return style;
+ }
+
+ public Track style(String style) {
+ this.style = style;
+ return this;
+ }
+
+ public abstract Artist artist();
+
+ public abstract Track artist(Artist artist);
+
+}
package net.pterodactylus.demoscenemusic.data;
+
/**
* TODO
*
* @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
*/
-public class Track extends Base {
-
- private String name;
- private String style;
-
- public Track(String id) {
- super(id);
- }
-
- public String name() {
- return name;
- }
-
- public Track name(String name) {
- this.name = name;
- return this;
- }
-
- public String style() {
- return style;
- }
+public interface Track {
- public Track style(String style) {
- this.style = style;
- return this;
- }
+ public String id();
+ public String name();
+ public Artist artist();
}