📄 Update year in file headers
[Sone.git] / src / main / java / net / pterodactylus / sone / template / AlbumAccessor.java
index 9ef168a..87378cc 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Sone - AlbumAccessor.java - Copyright © 2011–2013 David Roden
+ * Sone - AlbumAccessor.java - Copyright © 2011–2020 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
@@ -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;
@@ -29,11 +31,11 @@ import net.pterodactylus.util.template.TemplateContext;
  * {@link Accessor} implementation for {@link Album}s. A property named
  * “backlinks” is added, it returns links to all parents and the owner Sone of
  * an album.
- *
- * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
  */
 public class AlbumAccessor extends ReflectionAccessor {
 
+       private final Random random = new Random();
+
        /**
         * {@inheritDoc}
         */
@@ -41,7 +43,7 @@ public class AlbumAccessor extends ReflectionAccessor {
        public Object get(TemplateContext templateContext, Object object, String member) {
                Album album = (Album) object;
                if ("backlinks".equals(member)) {
-                       List<Link> backlinks = new ArrayList<Link>();
+                       List<Link> backlinks = new ArrayList<>();
                        Album currentAlbum = album;
                        while (!currentAlbum.isRoot()) {
                                backlinks.add(0, new Link("imageBrowser.html?album=" + currentAlbum.getId(), currentAlbum.getTitle()));
@@ -49,14 +51,15 @@ public class AlbumAccessor extends ReflectionAccessor {
                        }
                        backlinks.add(0, new Link("imageBrowser.html?sone=" + album.getSone().getId(), SoneAccessor.getNiceName(album.getSone())));
                        return backlinks;
+               } else if ("albumImage".equals(member)) {
+                       List<Image> images = album.getImages();
+                       return images.isEmpty() ? null : images.get(random.nextInt(images.size()));
                }
                return super.get(templateContext, object, member);
        }
 
        /**
         * Container for links.
-        *
-        * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
         */
        private static class Link {