Package er.imadaptor.components

Source Code of er.imadaptor.components.IMBuddyStatus

package er.imadaptor.components;

import com.webobjects.appserver.WOComponent;
import com.webobjects.appserver.WOContext;
import com.webobjects.appserver.WOResponse;

import er.imadaptor.IInstantMessenger;
import er.imadaptor.InstantMessengerAdaptor;
import er.imadaptor.InstantMessengerException;

public class IMBuddyStatus extends WOComponent {
  /**
   * Do I need to update serialVersionUID?
   * See section 5.6 <cite>Type Changes Affecting Serialization</cite> on page 51 of the
   * <a href="http://java.sun.com/j2se/1.4/pdf/serial-spec.pdf">Java Object Serialization Spec</a>
   */
  private static final long serialVersionUID = 1L;

  private String _buddyName;
  private Boolean _buddyOnline;
  private Boolean _buddyAway;
  private String _screenName;

  public IMBuddyStatus(WOContext context) {
    super(context);
  }

  public void setBuddyName(String buddyName) {
    _buddyName = buddyName;
  }

  public String buddyName() {
    return _buddyName;
  }

  public void setScreenName(String screenName) {
    _screenName = screenName;
  }

  public String screenName() {
    return _screenName;
  }

  @Override
  public void appendToResponse(WOResponse woresponse, WOContext wocontext) {
    _buddyOnline = null;
    _buddyAway = null;
    super.appendToResponse(woresponse, wocontext);
  }

  protected IInstantMessenger instantMessenger() {
    IInstantMessenger instantMessenger;
    if (_screenName == null) {
      instantMessenger = InstantMessengerAdaptor.instantMessengerAdaptor().defaultInstantMessenger();
    }
    else {
      instantMessenger = InstantMessengerAdaptor.instantMessengerAdaptor().instantMessengerForScreenName(_screenName);
    }
    return instantMessenger;
  }

  public boolean isBuddyOnline() {
    boolean buddyOnline;
    if (_buddyOnline == null) {
      IInstantMessenger instantMessenger = instantMessenger();
      if (instantMessenger != null) {
        try {
          buddyOnline = instantMessenger.isBuddyOnline(_buddyName);
          _buddyOnline = Boolean.valueOf(buddyOnline);
        }
        catch (InstantMessengerException e) {
          buddyOnline = false;
        }
      }
      else {
        buddyOnline = false;
      }
    }
    else {
      buddyOnline = _buddyOnline.booleanValue();
    }
    return buddyOnline;
  }

  public boolean isBuddyAway() {
    boolean buddyAway;
    if (_buddyAway == null) {
      IInstantMessenger instantMessenger = instantMessenger();
      if (instantMessenger != null) {
        try {
          buddyAway = instantMessenger().isBuddyAway(_buddyName);
          _buddyAway = Boolean.valueOf(buddyAway);
        }
        catch (InstantMessengerException e) {
          buddyAway = false;
        }
      }
      else {
        buddyAway = false;
      }
    }
    else {
      buddyAway = _buddyAway.booleanValue();
    }
    return buddyAway;
  }
}
TOP

Related Classes of er.imadaptor.components.IMBuddyStatus

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.