X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fdemoscenemusic%2Fdata%2FDefaultGroup.java;h=57cbf4051cea0b9b3e60d03429d5d5a00d5d97b1;hb=fb73cc41eb8f9ef9bf2181f4295dc74581b25b53;hp=16b2cca80063b63f184e0bdce2f87d592251a42f;hpb=f910bfec8c988bc9baf7e5e3a05b19237e899cec;p=demoscenemusic.git diff --git a/src/main/java/net/pterodactylus/demoscenemusic/data/DefaultGroup.java b/src/main/java/net/pterodactylus/demoscenemusic/data/DefaultGroup.java index 16b2cca..57cbf40 100644 --- a/src/main/java/net/pterodactylus/demoscenemusic/data/DefaultGroup.java +++ b/src/main/java/net/pterodactylus/demoscenemusic/data/DefaultGroup.java @@ -18,32 +18,53 @@ package net.pterodactylus.demoscenemusic.data; import java.util.Collection; +import java.util.Comparator; /** - * TODO + * Default implementation of a group data container. * * @author David ‘Bombe’ Roden */ public class DefaultGroup extends DefaultBase implements Group { + /** Comparator that sorts groups by name. */ + public static final Comparator NAME_COMPARATOR = new Comparator() { + + @Override + public int compare(Group leftGroup, Group rightGroup) { + return leftGroup.getName().compareToIgnoreCase(rightGroup.getName()); + } + + }; + + /** + * Creates a new group data container. + * + * @param id + * The ID of the group + */ public DefaultGroup(String id) { super(id); } + // + // GROUP METHODS + // + /** * {@inheritDoc} */ @Override - public String name() { - return value("name", String.class).get(); + public String getName() { + return getValue("name", String.class).get(); } /** * {@inheritDoc} */ @Override - public Group name(String name) { - value("name", String.class).set(name); + public Group setName(String name) { + getValue("name", String.class).set(name); return this; } @@ -51,35 +72,41 @@ public class DefaultGroup extends DefaultBase implements Group { * {@inheritDoc} */ @Override - public String url() { - return value("url", String.class).get(); + @SuppressWarnings("unchecked") + public Collection getArtists() { + return getValue("artists", Collection.class).get(); } /** * {@inheritDoc} */ @Override - public Group url(String url) { - value("url", String.class).set(url); + public Group setArtists(Collection artists) { + getValue("artists", Collection.class).set(artists); return this; } + // + // OBJECT METHODS + // + /** * {@inheritDoc} */ @Override - @SuppressWarnings("unchecked") - public Collection artists() { - return value("artists", Collection.class).get(); + public int hashCode() { + return getId().hashCode(); } /** * {@inheritDoc} */ @Override - public Group artists(Collection artists) { - value("artists", Collection.class).set(artists); - return this; + public boolean equals(Object object) { + if (!(object instanceof Group)) { + return false; + } + return ((Group) object).getId().equals(getId()); } }