Add “randomImage” accessor for albums
[Sone.git] / src / main / java / net / pterodactylus / sone / template / AlbumAccessor.java
index e19a89a..5093442 100644 (file)
@@ -19,8 +19,10 @@ package net.pterodactylus.sone.template;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Random;
 
 import net.pterodactylus.sone.data.Album;
+import net.pterodactylus.sone.data.Image;
 import net.pterodactylus.util.template.Accessor;
 import net.pterodactylus.util.template.ReflectionAccessor;
 import net.pterodactylus.util.template.TemplateContext;
@@ -34,6 +36,8 @@ import net.pterodactylus.util.template.TemplateContext;
  */
 public class AlbumAccessor extends ReflectionAccessor {
 
+       private final Random random = new Random();
+
        /**
         * {@inheritDoc}
         */
@@ -49,6 +53,9 @@ public class AlbumAccessor extends ReflectionAccessor {
                        }
                        backlinks.add(0, new Link("imageBrowser.html?sone=" + album.getSone().getId(), SoneAccessor.getNiceName(album.getSone())));
                        return backlinks;
+               } else if ("randomImage".equals(member)) {
+                       List<Image> images = album.getImages();
+                       return images.isEmpty() ? null : images.get(random.nextInt(images.size()));
                }
                return super.get(templateContext, object, member);
        }