/** * Hudson Sametime Plugin */ package hudson.plugins.sametime.im.transport; import hudson.plugins.sametime.im.IMMessageTarget; import hudson.plugins.sametime.tools.Assert; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.lotus.sametime.core.types.STUser; /** * Contains both the String and object representations of a Sametime user Id (ie a resolved lookup). * @author Jamie Burrell * @since 16 Jan 2008 * @version 1.0 */ public class SametimeIMMessageTarget implements IMMessageTarget { // The logger for the SametimeIMMessageTarget class. @SuppressWarnings("unused") private static Log log = LogFactory.getLog(SametimeIMMessageTarget.class); private static final long serialVersionUID = 1L; private final String value; private final STUser user; /** * Constructor. * @param user The resolved user object (from the ST lookup service) * @param userName The userName we looked up to get the user. */ public SametimeIMMessageTarget(final STUser user, final String userName) { Assert.isNotNull(user, "Parameter 'user' must not be null."); Assert.isNotNull(userName, "Parameter 'userName' must not be null."); this.user = user; this.value = userName; } /* (non-Javadoc) * @see java.lang.Object#equals(java.lang.Object) */ @Override public boolean equals(final Object arg0) { if (arg0 == null) { return false; } if (arg0 == this) { return true; } if (arg0 instanceof SametimeIMMessageTarget) { final SametimeIMMessageTarget other = (SametimeIMMessageTarget) arg0; boolean retval = true; retval &= this.value.equals(other.value); return retval; } else { return false; } } /* (non-Javadoc) * @see java.lang.Object#hashCode() */ @Override public int hashCode() { return this.value.hashCode(); } /* (non-Javadoc) * @see java.lang.Object#toString() */ @Override public String toString() { return this.value; } /** * Gets the resolved user for this target. * @return The user representation */ public STUser getUser() { return user; } }