/src/main/java/com/atlassian/confluence/plugins/whotofollow/RecommendationsMacro.java
https://bitbucket.org/jhoarau/confluence-whotofollow · Java · 92 lines · 78 code · 14 blank · 0 comment · 2 complexity · 262f22f7e9ff10d068d5536ad1f9af13 MD5 · raw file
- package com.atlassian.confluence.plugins.whotofollow;
- import com.atlassian.confluence.content.render.xhtml.ConversionContext;
- import com.atlassian.confluence.macro.Macro;
- import com.atlassian.confluence.macro.MacroExecutionException;
- import com.atlassian.confluence.plugins.whotofollow.engine.AggregateRecommendationEngine;
- import com.atlassian.confluence.renderer.radeox.macros.MacroUtils;
- import com.atlassian.confluence.user.AuthenticatedUserThreadLocal;
- import com.atlassian.confluence.util.velocity.VelocityUtils;
- import com.atlassian.crowd.embedded.api.User;
- import com.atlassian.plugin.webresource.WebResourceManager;
- import com.atlassian.renderer.RenderContext;
- import com.atlassian.renderer.v2.RenderMode;
- import com.atlassian.renderer.v2.macro.BaseMacro;
- import com.atlassian.renderer.v2.macro.MacroException;
- import org.apache.commons.lang.StringUtils;
- import java.util.Collection;
- import java.util.Map;
- public class RecommendationsMacro extends BaseMacro implements Macro
- {
- private final WebResourceManager webResourceManager;
- private final AggregateRecommendationEngine recommendationEngine;
- public RecommendationsMacro(WebResourceManager webResourceManager, AggregateRecommendationEngine recommendationEngine)
- {
- this.webResourceManager = webResourceManager;
- this.recommendationEngine = recommendationEngine;
- }
- @Override
- public String execute(Map<String, String> parameters, String body, ConversionContext conversionContext) throws MacroExecutionException
- {
- try
- {
- return execute(parameters, body, (RenderContext) null);
- }
- catch (MacroException e)
- {
- throw new MacroExecutionException(e);
- }
- }
- @Override
- public BodyType getBodyType()
- {
- return BodyType.NONE;
- }
- @Override
- public OutputType getOutputType()
- {
- return OutputType.BLOCK;
- }
- @Override
- public boolean hasBody()
- {
- return true;
- }
- @Override
- public RenderMode getBodyRenderMode()
- {
- return RenderMode.NO_RENDER;
- }
- @Override
- public String execute(Map parameters, String body, RenderContext renderContext) throws MacroException
- {
- String username = (String) parameters.get("username");
- if (StringUtils.isBlank(username))
- {
- username = AuthenticatedUserThreadLocal.getUsername();
- }
- String theme = (String) parameters.get("theme");
- if (StringUtils.isBlank(theme))
- {
- theme = "big";
- }
- Map<String,Object> context = MacroUtils.defaultVelocityContext();
- Collection<User> users = recommendationEngine.recommendFollowings(username);
- context.put("recommendations", users);
- context.put("theme", theme);
- return VelocityUtils.getRenderedTemplate("/templates/recommendations-macro.vm", context);
- }
- }