colleague.java

来自「Java Pattern Oriented Framework (Jt) 是为了」· Java 代码 · 共 162 行

JAVA
162
字号


package Jt.examples.patterns;

import Jt.JtMessage;
import Jt.JtObject;
import Jt.JtThread;


/**
 * Chat room member (runs in a separate thread)
 */

public class Colleague extends JtThread {

    public static final String JtCLASS_NAME = Colleague.class.getName(); 
    
    private static final long serialVersionUID = 1L;
    Object mediator;
    String greetingMessage = "Hi there ";


    /**
     * Specifies the greeting message.
     *
     * @param greetingMessage greetingMessage
     */

    public void setGreetingMessage (String greetingMessage) {
        this.greetingMessage = greetingMessage; 

    }

    /**
     * Returns the greeting message.
     */

    public String getGreetingMessage () {
        return (greetingMessage);
    }


    /**
     * Specifies the mediator object.
     *
     * @param mediator mediator
     */

    public void setMediator (Object mediator) {
        this.mediator = mediator; 

    }

    /**
     * Returns the mediator.
     */

    public Object getMediator () {
        return (mediator);
    }


    public Colleague () {
    }


    // sleep for a period of time

    private void sleep (long period) {

        try {
            Thread.sleep (period);
        } catch (Exception e) {
            handleException (e);
        }

    }

    /**
     * Process object messages.
     * <ul>
     * </ul>
     * @param message Jt Message
     */


    public Object processMessage (Object message) {

        String msgid = null;
        JtMessage e = (JtMessage) message;
        //Object content;
        //Object data;
        JtMessage tmp;



        if (e == null)
            return null;

        msgid = (String) e.getMsgId ();

        if (msgid == null)
            return null;

        //content = e.getMsgContent();
        //data = e.getMsgData ();

        // Remove this object
        if (msgid.equals (JtObject.JtREMOVE)) {
            return (null);     
        }

        if (msgid.equals (Mediator.MESSAGE)) {
            return (null);     
        }

        if (msgid.equals (JtObject.JtACTIVATE)) {

            if (mediator == null) {
                handleError ("the mediator attribute needs to be set");
                return (null);
            }


            // Join the chat room

            tmp = new JtMessage (Mediator.JOIN);
            tmp.setMsgContent (this);
            sendMessage (mediator, tmp);

            // Send a message

            tmp = new JtMessage (Mediator.MESSAGE);
            tmp.setMsgContent (greetingMessage);
            tmp.setMsgData (this);
            sendMessage (mediator, tmp);

            // Sleep for a few seconds

            sleep (3000L);

            // Exit the chat room

            tmp = new JtMessage (Mediator.EXIT);
            tmp.setMsgContent (this);
            sendMessage (mediator, tmp);

            return (null);     
        }

        return (super.processMessage (message));     


    }




}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?