React correctly when parameters are not given.
[Sone.git] / src / main / java / net / pterodactylus / sone / template / ImageLinkFilter.java
index 7e3723c..ea863f9 100644 (file)
@@ -62,25 +62,22 @@ public class ImageLinkFilter implements Filter {
                this.templateContextFactory = templateContextFactory;
        }
 
-       /**
-        * {@inheritDoc}
-        */
        @Override
        public Object format(TemplateContext templateContext, Object data, Map<String, Object> parameters) {
                Image image = null;
                if (data instanceof String) {
-                       image = core.getImage((String) data, false);
+                       image = core.getImage((String) data).orNull();
                } else if (data instanceof Image) {
                        image = (Image) data;
                }
                if (image == null) {
                        return null;
                }
-               String imageClass = String.valueOf(parameters.get("class"));
+               String imageClass = getParameterAsString(parameters, "class");
                int maxWidth = Numbers.safeParseInteger(parameters.get("max-width"), Integer.MAX_VALUE);
                int maxHeight = Numbers.safeParseInteger(parameters.get("max-height"), Integer.MAX_VALUE);
-               String mode = String.valueOf(parameters.get("mode"));
-               String title = String.valueOf(parameters.get("title"));
+               String mode = getParameterAsString(parameters, "mode");
+               String title = getParameterAsString(parameters, "title");
 
                TemplateContext linkTemplateContext = templateContextFactory.createTemplateContext();
                linkTemplateContext.set("class", imageClass);
@@ -114,4 +111,9 @@ public class ImageLinkFilter implements Filter {
                return stringWriter.toString();
        }
 
+       private static String getParameterAsString(Map<String, Object> parameters, String key) {
+               Object parameter = parameters.get(key);
+               return (parameter == null) ? null : String.valueOf(parameter);
+       }
+
 }