001 package users.events; 002 003 import users.*; 004 005 import java.util.*; 006 007 /** 008 * An event indicating changes in a user's capabilities. 009 * 010 * @see User 011 * @see Capability 012 * @see CapabilityDataListener 013 * 014 * @author Steffen Zschaler 015 * @version 2.0 05/05/1999 016 * @since v2.0 017 */ 018 public class CapabilityDataEvent extends EventObject { 019 020 /** 021 * ID for serialization. 022 */ 023 private static final long serialVersionUID = 7424718068336776722L; 024 025 /** 026 * The capabilities that participated in the change. 027 * 028 * @serial 029 */ 030 private Set<String> m_stCapNames; 031 032 /** 033 * Create a new CapabilityDataEvent with a source and a set of affected capabilities 034 * 035 * @param source the source of the event, usually a User object. 036 * @param stCapNames the set of capabilities that changed. 037 */ 038 public CapabilityDataEvent(Object source, Set<String> stCapNames) { 039 super(source); 040 041 m_stCapNames = stCapNames; 042 } 043 044 /** 045 * Test whether a given capability is affected by this event. 046 * 047 * @param sCapName the name of the capability to be tested 048 * 049 * @return true if the given capability is affected by this event. 050 * 051 * @override Never 052 */ 053 public boolean affectsCapability(String sCapName) { 054 return m_stCapNames.contains(sCapName); 055 } 056 057 /** 058 * Return a capability if it is affected by this event. 059 * 060 * @param sCapName the name of the capability to be returned. 061 * 062 * @return the capability with the given name, if it is affected by this event. 063 * <code>null</code> otherwise. 064 * 065 * @override Never 066 */ 067 public Capability getCapability(String sCapName) { 068 return ((affectsCapability(sCapName)) ? (((User)getSource()).getCapability(sCapName)) : (null)); 069 } 070 071 }