X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fdemoscenemusic%2Fdata%2FDefaultParty.java;h=f621d4d14a98a3b9bd561cd5aebfcf94523ad494;hb=7d564a0d18ae3385677021e396a02b9fbedd8f94;hp=f30a42f2ff0d5c620f817df0d307172aa5c25637;hpb=7da3008f2142348efd4efc21c5ce36a018227d6e;p=demoscenemusic.git
diff --git a/src/main/java/net/pterodactylus/demoscenemusic/data/DefaultParty.java b/src/main/java/net/pterodactylus/demoscenemusic/data/DefaultParty.java
index f30a42f..f621d4d 100644
--- a/src/main/java/net/pterodactylus/demoscenemusic/data/DefaultParty.java
+++ b/src/main/java/net/pterodactylus/demoscenemusic/data/DefaultParty.java
@@ -17,26 +17,82 @@
package net.pterodactylus.demoscenemusic.data;
+import java.util.Collection;
+import java.util.Comparator;
+
+import net.pterodactylus.util.number.Numbers;
+
/**
- * TODO
+ * Default implementation of a party data container.
*
* @author David âBombeâ Roden
*/
public class DefaultParty extends DefaultBase implements Party {
+ /** Comparator that sorts parties by name and descending year. */
+ public static final Comparator NAME_YEAR_COMPARATOR = new Comparator() {
+
+ @Override
+ public int compare(Party leftParty, Party rightParty) {
+ int diff = leftParty.getName().compareToIgnoreCase(rightParty.getName());
+ if (diff != 0) {
+ return diff;
+ }
+ int leftYear = Numbers.safeParseInteger(leftParty.getProperties().get("party/year"), 0);
+ int rightYear = Numbers.safeParseInteger(rightParty.getProperties().get("party/year"), 0);
+ /* show newest parties first. */
+ return rightYear - leftYear;
+ }
+
+ };
+
+ /**
+ * Creates a new party data container.
+ *
+ * @param id
+ * The ID of the party
+ */
public DefaultParty(String id) {
super(id);
}
+ //
+ // PARTY METHODS
+ //
+
+ /**
+ * {@inheritDoc}
+ */
@Override
public String getName() {
return getValue("name", String.class).get();
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public DefaultParty setName(String name) {
getValue("name", String.class).set(name);
return this;
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ @SuppressWarnings("unchecked")
+ public Collection