001: /*
002: * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
003: *
004: * Redistribution and use in source and binary forms, with or without
005: * modification, are permitted provided that the following conditions
006: * are met:
007: *
008: * - Redistributions of source code must retain the above copyright
009: * notice, this list of conditions and the following disclaimer.
010: *
011: * - Redistribution in binary form must reproduce the above copyright
012: * notice, this list of conditions and the following disclaimer in
013: * the documentation and/or other materials provided with the
014: * distribution.
015: *
016: * Neither the name of Sun Microsystems, Inc. or the names of
017: * contributors may be used to endorse or promote products derived
018: * from this software without specific prior written permission.
019: *
020: * This software is provided "AS IS," without a warranty of any
021: * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
022: * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
023: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
024: * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES
025: * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
026: * DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN
027: * OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
028: * FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR
029: * PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF
030: * LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE,
031: * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
032: *
033: * You acknowledge that Software is not designed, licensed or intended
034: * any nuclear facility.
035: */
036:
037: package com.sun.portal.community.notification;
038:
039: import java.util.Map;
040: import java.util.Iterator;
041: import java.util.HashMap;
042: import java.util.Set;
043: import java.util.HashSet;
044:
045: public class NotificationType {
046:
047: //
048: // user-level events
049: //
050: private static final long USER_INVITED_BIT = 1 << 0;
051: //private static final long USER_BANNED_BIT = 1 << 1;
052: //private static final long USER_ADDED_BIT = 1 << 2;
053: //private static final long USER_REMOVED_BIT = 1 << 3;
054:
055: //
056: // community-level events
057: //
058: //private static final long CTY_DISABLED_BIT = 1 << 10;
059: //private static final long CTY_ENABLED_BIT = 1 << 11;
060: //private static final long CTY_DELETED_BIT = 1 << 12;
061:
062: public static final NotificationType USER_INVITED = new NotificationType(
063: USER_INVITED_BIT);
064: /*
065: * not used yet
066: *
067: public static final NotificationType USER_BANNED =
068: new NotificationType(USER_BANNED_BIT);
069: public static final NotificationType USER_ADDED =
070: new NotificationType(USER_ADDED_BIT);
071: public static final NotificationType USER_REMOVED =
072: new NotificationType(USER_REMOVED_BIT);
073: public static final NotificationType CTY_DISABLED =
074: new NotificationType(CTY_DISABLED_BIT);
075: public static final NotificationType CTY_ENABLED =
076: new NotificationType(CTY_ENABLED_BIT);
077: public static final NotificationType CTY_DELETED =
078: new NotificationType(CTY_DELETED_BIT);
079: */
080:
081: public static final Map ALL_TYPES_MAP = new HashMap();
082:
083: static {
084: ALL_TYPES_MAP.put("user_invited", USER_INVITED);
085: /*
086: * not used yet
087: *
088: ALL_TYPES_MAP.put("user_banned", USER_BANNED);
089: ALL_TYPES_MAP.put("user_added", USER_ADDED);
090: ALL_TYPES_MAP.put("user_removed", USER_REMOVED);
091: ALL_TYPES_MAP.put("community_disabled", CTY_DISABLED);
092: ALL_TYPES_MAP.put("community_enabled", CTY_ENABLED);
093: ALL_TYPES_MAP.put("community_deleted", CTY_DELETED);
094: */
095: }
096:
097: public static final Map REV_ALL_TYPES_MAP = reverseMap(ALL_TYPES_MAP);
098:
099: //
100: // bitmap representation of the notification type
101: //
102: private long _bitmap = 0;
103:
104: public NotificationType(long bitmap) {
105:
106: _bitmap = bitmap;
107: }
108:
109: public long longValue() {
110:
111: return _bitmap;
112: }
113:
114: public boolean equals(NotificationType type) {
115:
116: return (_bitmap == type.longValue());
117: }
118:
119: public static NotificationType valueOf(String name) {
120:
121: return (NotificationType) ALL_TYPES_MAP.get(name);
122: }
123:
124: public String toString() {
125:
126: return (String) REV_ALL_TYPES_MAP.get(this );
127: }
128:
129: private static Map reverseMap(Map map) {
130: Map revMap = new HashMap(map.size());
131: for (Iterator i = map.entrySet().iterator(); i.hasNext();) {
132: Map.Entry entry = (Map.Entry) i.next();
133: revMap.put(entry.getValue(), entry.getKey());
134: }
135: return revMap;
136: }
137: }
|