jtqueue.java
来自「Java Pattern Oriented Framework (Jt) 是为了」· Java 代码 · 共 141 行
JAVA
141 行
package Jt;
/**
* Implements a queue of objects.
*/
public class JtQueue extends JtList {
private static final long serialVersionUID = 1L;
public static final String JtCLASS_NAME = JtQueue.class.getName();
public static final String JtENQUEUE = "JtENQUEUE";
public static final String JtDEQUEUE = "JtDEQUEUE";
public JtQueue() {
}
private Object test () {
JtMessage msg;
Object obj;
// Enqueue couple of objects
msg = new JtMessage (JtQueue.JtENQUEUE);
msg.setMsgContent (new Integer (1));
System.out.println ("Enqueue object ... " + new Integer (1));
sendMessage (this, msg);
msg = new JtMessage (JtQueue.JtENQUEUE);
msg.setMsgContent (new Integer (2));
System.out.println ("Enqueue object ... " + new Integer (2));
sendMessage (this, msg);
// Dequeue all the elements in the queue
for (;;) {
obj = (Object) sendMessage (this, new JtMessage (JtQueue.JtDEQUEUE));
if (obj == null)
break;
System.out.println ("Dequeue object ... " + obj);
}
return (this);
}
/**
* Process object messages.
* <ul>
* <li> JtENQUEUE - Enqueues the object specified by msgContent
* <li> JtDEQUEUE - Dequeues and returns the object at the beginning of the queue.
* </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();
// Remove this object
if (msgid.equals (JtObject.JtREMOVE)) {
return (null);
}
// Enqueue message
if (msgid.equals (JtQueue.JtENQUEUE)) {
// Add an object to the queue
tmp = new JtMessage (JtList.JtADD);
tmp.setMsgContent (content);
return (super.processMessage (tmp));
}
// Dequeue message
if (msgid.equals (JtQueue.JtDEQUEUE)) {
return (super.processMessage (new JtMessage (JtList.JtREMOVE_FIRST)));
}
// Test this object
if (msgid.equals (JtObject.JtTEST)) {
return (test ());
}
return (super.processMessage(message));
}
/**
* Demonstrates the messages processed by JtQueue.
*/
public static void main(String[] args) {
JtObject main = new JtObject ();
JtQueue queue;
// Create a Queue
queue = (JtQueue) main.createObject (JtQueue.JtCLASS_NAME, "queue");
main.sendMessage (queue, new JtMessage (JtObject.JtTEST));
main.removeObject (queue);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?