X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fdemoscenemusic%2Fdata%2FDefaultArtist.java;h=151aeca9f54c7d4d0e9e7827bac14b1d6c90afb2;hb=9eee0f4f619731e5f8b79396d2476090d328be6b;hp=3dc01085940d4222af4e39f3fc70d86c3ea75316;hpb=7da3008f2142348efd4efc21c5ce36a018227d6e;p=demoscenemusic.git diff --git a/src/main/java/net/pterodactylus/demoscenemusic/data/DefaultArtist.java b/src/main/java/net/pterodactylus/demoscenemusic/data/DefaultArtist.java index 3dc0108..151aeca 100644 --- a/src/main/java/net/pterodactylus/demoscenemusic/data/DefaultArtist.java +++ b/src/main/java/net/pterodactylus/demoscenemusic/data/DefaultArtist.java @@ -18,23 +18,49 @@ package net.pterodactylus.demoscenemusic.data; import java.util.Collection; +import java.util.Comparator; /** - * TODO + * Default implementation for an artist data container. * * @author David ‘Bombe’ Roden */ public class DefaultArtist extends DefaultBase implements Artist { + /** Comparator that sorts artists by name. */ + public static final Comparator NAME_COMPARATOR = new Comparator() { + + @Override + public int compare(Artist leftArtist, Artist rightArtist) { + return leftArtist.getName().compareToIgnoreCase(rightArtist.getName()); + } + }; + + /** + * Creates a new artist data container. + * + * @param id + * The ID of the artist + */ public DefaultArtist(String id) { super(id); } + // + // ARTIST METHODS + // + + /** + * {@inheritDoc} + */ @Override public String getName() { return getValue("name", String.class).get(); } + /** + * {@inheritDoc} + */ @Override public Artist setName(String name) { getValue("name", String.class).set(name); @@ -59,15 +85,45 @@ public class DefaultArtist extends DefaultBase implements Artist { return this; } + /** + * {@inheritDoc} + */ @Override + @SuppressWarnings({ "unchecked" }) public Collection getTracks() { return getValue("tracks", Collection.class).get(); } + /** + * {@inheritDoc} + */ @Override public Artist setTracks(Collection tracks) { getValue("tracks", Collection.class).set(tracks); return this; } + // + // OBJECT METHODS + // + + /** + * {@inheritDoc} + */ + @Override + public int hashCode() { + return getId().hashCode(); + } + + /** + * {@inheritDoc} + */ + @Override + public boolean equals(Object object) { + if (!(object instanceof Artist)) { + return false; + } + return ((Artist) object).getId().equals(getId()); + } + }