Package com.nabalive.server.jabber

Source Code of com.nabalive.server.jabber.Status

package com.nabalive.server.jabber;

import com.nabalive.common.server.Event;
import com.nabalive.common.server.EventListener;
import com.nabalive.server.jabber.util.Jid;
import org.jboss.netty.buffer.ChannelBuffers;
import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.util.CharsetUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
* Created by IntelliJ IDEA.
* User: Julien Cheype
* Date: 11/15/11
*/
public class Status {
    private final Logger logger = LoggerFactory.getLogger(this.getClass());

    private boolean authenticated;
    private String username;
    private final ChannelHandlerContext context;

    private List<EventListener> eventListenerList = new ArrayList<EventListener>();
    private Jid jid;
    private String presence;

    public Status(ChannelHandlerContext ctx, List<EventListener> eventListeners) {
        this.context = ctx;
        this.eventListenerList = eventListeners;
    }

    public boolean isAuthenticated() {
        return authenticated;
    }

    public void setAuthenticated(boolean authenticated) {
        this.authenticated = authenticated;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getUsername() {
        return username;
    }

    public ChannelHandlerContext getContext() {
        return context;
    }

    public Jid getJid() {
        return jid;
    }

    public void setJid(Jid jid) {
        this.jid = jid;
    }

    public void registerEvent(EventListener eventListener) {
        synchronized (eventListenerList) {
            eventListenerList.add(eventListener);
        }
    }

    public void onEvent(Event event) {
        synchronized (eventListenerList) {
            Iterator<EventListener> iterator = eventListenerList.iterator();
            while (iterator.hasNext()) {
                EventListener listener = iterator.next();
                try {
                    listener.onEvent(jid.getUser(), event);
                } catch (Exception e) {
                    logger.debug("eventListener exception (unregister): ", e);
                    iterator.remove();
                }
            }
        }
    }

    public void write(String data) {
        logger.debug(">>>>>>>>>> " + data);
        context.getChannel().write(ChannelBuffers.copiedBuffer(data.getBytes(CharsetUtil.UTF_8)));
    }

    public String getPresence() {
        return presence;
    }

    public void setPresence(String presence) {
        this.presence = presence;
    }

    public boolean isAsleep(){
        return "asleep".equalsIgnoreCase(presence);
    }

    public boolean isIdle(){
        return "idle".equalsIgnoreCase(presence);
    }
}
TOP

Related Classes of com.nabalive.server.jabber.Status

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.