From: David ‘Bombe’ Roden Date: Thu, 19 Apr 2012 12:44:37 +0000 (+0200) Subject: Rename data containers. X-Git-Url: https://git.pterodactylus.net/?a=commitdiff_plain;h=d5a46d4ea7a16b4f43a79de2786034f1081463e1;p=demoscenemusic.git Rename data containers. The containers are no longer abstract and should thus not be named as such. The write() functionality will move to Writable* interfaces, and the manager will be able to convert objects into writable objects so that they can be persisted. --- diff --git a/src/main/java/net/pterodactylus/demoscenemusic/data/AbstractArtist.java b/src/main/java/net/pterodactylus/demoscenemusic/data/AbstractArtist.java deleted file mode 100644 index 8ba69cb..0000000 --- a/src/main/java/net/pterodactylus/demoscenemusic/data/AbstractArtist.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * DemosceneMusic - Artist.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 . - */ - -package net.pterodactylus.demoscenemusic.data; - -import java.util.Set; - -/** - * TODO - * - * @author David ‘Bombe’ Roden - */ -public abstract class AbstractArtist extends AbstractBase implements Artist { - - public AbstractArtist(String id) { - super(id); - } - - public String name() { - return value("name", String.class).get(); - } - - public Artist name(String name) { - value("name", String.class).set(name); - return this; - } - - /** - * {@inheritDoc} - */ - @SuppressWarnings("unchecked") - public Set groups() { - return value("groups", Set.class).get(); - } - - /** - * {@inheritDoc} - */ - public Artist groups(Set groups) { - value("groups", Set.class).set(groups); - return this; - } - -} diff --git a/src/main/java/net/pterodactylus/demoscenemusic/data/AbstractBase.java b/src/main/java/net/pterodactylus/demoscenemusic/data/AbstractBase.java deleted file mode 100644 index ad5cfd8..0000000 --- a/src/main/java/net/pterodactylus/demoscenemusic/data/AbstractBase.java +++ /dev/null @@ -1,130 +0,0 @@ -/* - * DemosceneMusic - Base.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 . - */ - -package net.pterodactylus.demoscenemusic.data; - -import java.util.HashMap; -import java.util.Map; -import java.util.Map.Entry; - -/** - * TODO - * - * @author David ‘Bombe’ Roden - */ -public abstract class AbstractBase implements Base { - - private final String id; - - private final Map> attributes = new HashMap>(); - - protected AbstractBase(String id) { - this.id = id; - } - - public String id() { - return id; - } - - @SuppressWarnings({ "synthetic-access", "unchecked" }) - protected Value value(String name, Class clazz) { - if (!attributes.containsKey(name)) { - attributes.put(name, new Value()); - } - return (Value) attributes.get(name); - } - - protected boolean dirty() { - for (Value value : attributes.values()) { - if (value.dirty()) { - return true; - } - } - return false; - } - - // - // OBJECT METHODS - // - - /** - * {@inheritDoc} - */ - @Override - public int hashCode() { - return id().hashCode(); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean equals(Object obj) { - if (!(obj instanceof Base)) { - return false; - } - return id().equals(((Base) obj).id()); - } - - /** - * {@inheritDoc} - */ - @Override - public String toString() { - StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append(getClass().getName()); - stringBuilder.append('[').append("id=").append(id()); - for (Entry> attributeEntry : attributes.entrySet()) { - stringBuilder.append(',').append(attributeEntry.getKey()).append('=').append(attributeEntry.getValue().get()); - } - stringBuilder.append(']'); - return stringBuilder.toString(); - } - - protected static class Value { - - private T original; - - private boolean originalSet; - - private T current; - - public T get() { - return current; - } - - public Value set(T value) { - if (!originalSet) { - original = value; - originalSet = true; - } - current = value; - return this; - } - - public boolean dirty() { - return (original != null) ? !original.equals(current) : current != null; - } - - public Value commit() { - original = current; - return this; - } - - } - -} diff --git a/src/main/java/net/pterodactylus/demoscenemusic/data/AbstractGroup.java b/src/main/java/net/pterodactylus/demoscenemusic/data/AbstractGroup.java deleted file mode 100644 index 1cd53dc..0000000 --- a/src/main/java/net/pterodactylus/demoscenemusic/data/AbstractGroup.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * DemosceneMusic - AbstractGroup.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 . - */ - -package net.pterodactylus.demoscenemusic.data; - -/** - * TODO - * - * @author David ‘Bombe’ Roden - */ -public abstract class AbstractGroup extends AbstractBase implements Group { - - public AbstractGroup(String id) { - super(id); - } - - /** - * {@inheritDoc} - */ - public String name() { - return value("name", String.class).get(); - } - - /** - * {@inheritDoc} - */ - public Group name(String name) { - value("name", String.class).set(name); - return this; - } - - /** - * {@inheritDoc} - */ - public String url() { - return value("url", String.class).get(); - } - - /** - * {@inheritDoc} - */ - public Group url(String url) { - value("url", String.class).set(url); - return this; - } - -} diff --git a/src/main/java/net/pterodactylus/demoscenemusic/data/AbstractParty.java b/src/main/java/net/pterodactylus/demoscenemusic/data/AbstractParty.java deleted file mode 100644 index 87fed58..0000000 --- a/src/main/java/net/pterodactylus/demoscenemusic/data/AbstractParty.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * DemosceneMusic - AbstractParty.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 . - */ - -package net.pterodactylus.demoscenemusic.data; - -/** - * TODO - * - * @author David ‘Bombe’ Roden - */ -public abstract class AbstractParty extends AbstractBase implements Party { - - public AbstractParty(String id) { - super(id); - } - - public String name() { - return value("name", String.class).get(); - } - - public AbstractParty name(String name) { - value("name", String.class).set(name); - return this; - } - -} diff --git a/src/main/java/net/pterodactylus/demoscenemusic/data/AbstractStyle.java b/src/main/java/net/pterodactylus/demoscenemusic/data/AbstractStyle.java deleted file mode 100644 index 2c7c948..0000000 --- a/src/main/java/net/pterodactylus/demoscenemusic/data/AbstractStyle.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * DemosceneMusic - AbstractStyle.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 . - */ - -package net.pterodactylus.demoscenemusic.data; - -/** - * TODO - * - * @author David ‘Bombe’ Roden - */ -public abstract class AbstractStyle extends AbstractBase implements Style { - - public AbstractStyle(String id) { - super(id); - } - - public String name() { - return value("name", String.class).get(); - } - - public Style name(String name) { - value("name", String.class).set(name); - return this; - } - -} diff --git a/src/main/java/net/pterodactylus/demoscenemusic/data/AbstractTrack.java b/src/main/java/net/pterodactylus/demoscenemusic/data/AbstractTrack.java deleted file mode 100644 index 810a528..0000000 --- a/src/main/java/net/pterodactylus/demoscenemusic/data/AbstractTrack.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * 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 . - */ - -package net.pterodactylus.demoscenemusic.data; - -import java.util.List; -import java.util.Set; - -/** - * TODO - * - * @author David ‘Bombe’ Roden - */ -public abstract class AbstractTrack extends AbstractBase implements Track { - - public AbstractTrack(String id) { - super(id); - } - - public String name() { - return value("name", String.class).get(); - } - - public Track name(String name) { - value("name", String.class).set(name); - return this; - } - - public List artists() { - return value("artists", List.class).get(); - } - - public Track artists(List artists) { - value("artists", List.class).set(artists); - return this; - } - - public Set