Add missing javadoc.
[demoscenemusic.git] / src / main / java / net / pterodactylus / demoscenemusic / data / DataManager.java
index 5972bd8..9626100 100644 (file)
@@ -276,10 +276,7 @@ public class DataManager {
         *             if a database error occurs
         */
        public List<Artist> loadArtistProperties(List<Artist> artists) throws DatabaseException {
-               for (Artist artist : artists) {
-                       loadArtistProperties(artist);
-               }
-               return artists;
+               return loadProperties(artists, "ARTIST_PROPERTIES", "ARTIST");
        }
 
        /**
@@ -424,10 +421,7 @@ public class DataManager {
         *             if a database error occurs
         */
        public List<Track> loadTrackProperties(List<Track> tracks) throws DatabaseException {
-               for (Track track : tracks) {
-                       loadTrackProperties(track);
-               }
-               return tracks;
+               return loadProperties(tracks, "TRACK_PROPERTIES", "TRACK");
        }
 
        /**
@@ -564,10 +558,7 @@ public class DataManager {
         *             if a database error occurs
         */
        public List<TrackDerivative> loadTrackDerivativeProperties(List<TrackDerivative> trackDerivatives) throws DatabaseException {
-               for (TrackDerivative trackDerivative : trackDerivatives) {
-                       loadTrackDerivativeProperties(trackDerivative);
-               }
-               return trackDerivatives;
+               return loadProperties(trackDerivatives, "TRACK_DERIVATIVE_PROPERTIES", "TRACK_DERIVATIVE");
        }
 
        /**
@@ -669,11 +660,8 @@ public class DataManager {
         * @throws DatabaseException
         *             if a database error occurs
         */
-       public Collection<Group> loadGroupProperties(Collection<Group> groups) throws DatabaseException {
-               for (Group group : groups) {
-                       loadGroupProperties(group);
-               }
-               return groups;
+       public Collection<Group> loadGroupProperties(List<Group> groups) throws DatabaseException {
+               return loadProperties(groups, "GROUP_PROPERTIES", "GROUP_ID");
        }
 
        /**
@@ -681,15 +669,19 @@ public class DataManager {
         *
         * @param name
         *            The name of the new group
+        * @param shortName
+        *            The short name of the new group, or {@code null} if the group
+        *            does not have a short name
         * @return The new group
         * @throws DatabaseException
         *             if a database error occurs
         */
-       public Group createGroup(String name) throws DatabaseException {
+       public Group createGroup(String name, String shortName) throws DatabaseException {
                Query query = new Query(Type.INSERT, "GROUPS");
                String id = UUID.randomUUID().toString();
                query.addValueField(new ValueField("ID", new StringParameter(id)));
                query.addValueField(new ValueField("NAME", new StringParameter(name)));
+               query.addValueField(new ValueField("SHORT_NAME", new StringParameter(shortName)));
                database.insert(query);
                return getGroupById(id);
        }
@@ -705,6 +697,7 @@ public class DataManager {
        public void saveGroup(Group group) throws DatabaseException {
                Query query = new Query(Type.UPDATE, "GROUPS");
                query.addValueField(new ValueField("NAME", new StringParameter(group.getName())));
+               query.addValueField(new ValueField("SHORT_NAME", new StringParameter(group.getShortName())));
                query.addWhereClause(new ValueFieldWhereClause(new ValueField("ID", new StringParameter(group.getId()))));
                database.update(query);
                /* save properties. */
@@ -809,10 +802,7 @@ public class DataManager {
         *             if a database error occurs
         */
        public List<Party> loadPartyProperties(List<Party> parties) throws DatabaseException {
-               for (Party party : parties) {
-                       loadPartyProperties(party);
-               }
-               return parties;
+               return loadProperties(parties, "PARTY_PROPERTIES", "PARTY");
        }
 
        /**
@@ -968,6 +958,9 @@ public class DataManager {
         *             if a database error occurs
         */
        private <T extends Base> List<T> loadProperties(List<T> objects, final String table, final String type) throws DatabaseException {
+               if (objects.isEmpty()) {
+                       return objects;
+               }
                final Map<String, T> objectMap = new HashMap<String, T>();
                final Set<String> firstObjects = new HashSet<String>();
                for (T object : objects) {
@@ -1146,7 +1139,7 @@ public class DataManager {
                 */
                @Override
                public Group createObject(ResultSet resultSet) throws SQLException {
-                       return new LazyGroup(resultSet.getString("GROUPS.ID")).setName(resultSet.getString("GROUPS.NAME"));
+                       return new LazyGroup(resultSet.getString("GROUPS.ID")).setName(resultSet.getString("GROUPS.NAME")).setShortName(resultSet.getString("GROUPS.SHORT_NAME"));
                }
 
        }