Package com.madgnome.jira.plugins.jirachievements.data.services.impl

Source Code of com.madgnome.jira.plugins.jirachievements.data.services.impl.AchievementDaoService

package com.madgnome.jira.plugins.jirachievements.data.services.impl;

import com.atlassian.activeobjects.external.ActiveObjects;
import com.madgnome.jira.plugins.jirachievements.data.ao.*;
import com.madgnome.jira.plugins.jirachievements.data.services.IAchievementDaoService;
import net.java.ao.Query;

import java.util.*;

public class AchievementDaoService extends ReferencableDaoService<Achievement, AchievementRefEnum> implements IAchievementDaoService
{
  @Override
  protected Class<Achievement> getClazz()
  {
    return Achievement.class;
  }

  public AchievementDaoService(ActiveObjects ao)
  {
    super(ao);
  }

  public List<Achievement> allActive()
  {
    return Arrays.asList(ao.find(getClazz(), "ACTIVE = ?", true));
  }

  public Map<String, List<Achievement>> allGroupByCategoryName()
  {
    Map<String, List<Achievement>> achievementByCategory = new HashMap<String, List<Achievement>>();
    List<Achievement> achievements = all();
    for (Achievement achievement : achievements)
    {
      Category category = achievement.getCategory();
      List<Achievement> categoryAchievements = achievementByCategory.get(category.toString());
      if (categoryAchievements == null)
      {
        categoryAchievements = new ArrayList<Achievement>();
        achievementByCategory.put(category.toString(), categoryAchievements);
      }

      categoryAchievements.add(achievement);
    }

    return achievementByCategory;
  }

  public void activate(int id, boolean activate)
  {
    Achievement achievement = get(id);
    if (achievement == null)
    {
      logger.warn("No achievement found with this id: ", id);
      return;
    }

    achievement.setActive(activate);
    achievement.save();
  }

  public List<Achievement> getUserNewAchievements(UserWrapper userWrapper)
  {
    Query query = Query.select()
                       .alias(UserAchievement.class, "ua")
                       .alias(Achievement.class, "a")
                       .join(UserAchievement.class,"ua.ACHIEVEMENT_ID = a.ID")
                       .where("USER_WRAPPER_ID = ? AND NOTIFIED = ?", userWrapper.getID(), false);

    return Arrays.asList(ao.find(Achievement.class, query));
  }
}
TOP

Related Classes of com.madgnome.jira.plugins.jirachievements.data.services.impl.AchievementDaoService

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.