NotificationUtilities.java
- /*
- * This software was designed and created by Jason Carroll.
- * Copyright (c) 2002, 2003, 2004 Jason Carroll.
- * The author can be reached at jcarroll@cowsultants.com
- * ITracker website: http://www.cowsultants.com
- * ITracker forums: http://www.cowsultants.com/phpBB/index.php
- *
- * This program is free software; you can redistribute it and/or modify
- * it only under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
- package org.itracker.model.util;
- import org.apache.commons.lang.builder.CompareToBuilder;
- import org.itracker.core.resources.ITrackerResources;
- import org.itracker.model.Notification;
- import org.itracker.model.Notification.Role;
- import org.itracker.model.User;
- import java.util.*;
- public class NotificationUtilities {
- /**
- * @deprecated, use enumeration Notification.Role instead
- */
- private static HashMap<Locale, HashMap<Role, String>> roleNames = new HashMap<Locale, HashMap<Role, String>>();
- public NotificationUtilities() {
- super();
- }
- /**
- * @deprecated
- */
- public static String getRoleName(int value) {
- return getRoleName(value, ITrackerResources.getLocale());
- }
- /**
- * @deprecated
- */
- public static String getRoleName(int value, Locale locale) {
- return ITrackerResources.getString("itracker.notification.role."
- + value, locale);
- }
- public static String getRoleName(Role role) {
- return getRoleName(role, ITrackerResources.getLocale());
- }
- public static String getRoleName(Role role, Locale locale) {
- String s;
- if (null != (s = ITrackerResources.getString(
- "itracker.notification.role." + role, locale))) {
- return s;
- }
- return ITrackerResources.getString("itracker.notification.role."
- + role.getCode(), locale);
- }
- public static HashMap<Role, String> getRoleNames(Locale locale) {
- HashMap<Role, String> roles = roleNames.get(locale);
- if (roles == null) {
- roles = new HashMap<Role, String>();
- roles.put(Notification.Role.CREATOR,
- getRoleName(Notification.Role.CREATOR, locale));
- roles.put(Notification.Role.OWNER, getRoleName(Role.OWNER, locale));
- roles.put(Notification.Role.CONTRIBUTER, getRoleName(
- Notification.Role.CONTRIBUTER, locale));
- roles.put(Notification.Role.QA, getRoleName(Role.QA, locale));
- roles.put(Notification.Role.PM, getRoleName(Role.PM, locale));
- roles.put(Notification.Role.PO, getRoleName(Role.PO, locale));
- roles.put(Notification.Role.CO, getRoleName(Role.CO, locale));
- roles.put(Notification.Role.VO, getRoleName(Role.VO, locale));
- roles.put(Notification.Role.IP, getRoleName(Role.IP, locale));
- }
- roleNames.put(locale, roles);
- return roles;
- }
- public static final Map<User, Set<Notification.Role>> mappedRoles(List<Notification> notifications) {
- Map<User, Set<Role>> mapping = new Hashtable<User, Set<Role>>();
- Iterator<Notification> notificationIt = notifications.iterator();
- while (notificationIt.hasNext()) {
- Notification notification = (Notification) notificationIt.next();
- Set<Role> roles;
- if (mapping.keySet().contains(notification.getUser())) {
- roles = mapping.get(notification.getUser());
- roles.add(notification.getRole());
- } else {
- roles = new TreeSet<Role>(new Comparator<Role>() {
- public int compare(Role o1, Role o2) {
- return new CompareToBuilder().append(o1.getCode(), o2.getCode()).toComparison();
- }
- });
- roles.add(notification.getRole());
- mapping.put(notification.getUser(), roles);
- }
- }
- return mapping;
- }
- }