1 /*
2 * Copyright (c) 2004, Bruce Lowery
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 *
8 * - Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer.
10 * - Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 * - Neither the name of JEGG nor the names of its contributors may be used
14 * to endorse or promote products derived from this software without
15 * specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 * POSSIBILITY OF SUCH DAMAGE.
28 */
29 package jegg;
30
31 /***
32 * Used to wrap an application message that is being sent from one egg to another.
33 * <p>
34 * The Message instance not wraps the sending egg's concrete message object, but
35 * also holds a reference to the sending egg's own message port and the
36 * priority of the message.
37 * <p>
38 * An egg can use a special base-class method, {@link jegg.Egg.ceateMessage(Object)
39 * Egg.createMessage()}, to wrap an application message before writing it to
40 * a message port.
41 */
42 public class Message
43 {
44 /*** The message port of the sending egg */
45 private Port _from;
46 /*** The sending egg's application message */
47 private Object _message;
48 /*** The dispatch priority of the message */
49 private Priority _priority;
50
51 /***
52 * Create a JEgg message.
53 *
54 * @param m the application message being sent.
55 * @param p the port of the sending egg.
56 * @param pr the message's dispatch priority.
57 */
58 public Message(Object m, Port p, Priority pr)
59 {
60 _from = p;
61 _message = m;
62 _priority = pr;
63 }
64
65
66 /***
67 * Return the port of the egg that sent this message.
68 * @return the sending egg's message port.
69 */
70 public final Port getFrom()
71 {
72 return _from;
73 }
74
75 /***
76 * Return the application message.
77 *
78 * @return the application message wrapped by this JEgg message.
79 */
80 public final Object getMessage()
81 {
82 return _message;
83 }
84
85 /***
86 * Return the dispatch priority of this message.
87 * @return dispatch priority.
88 */
89 public final Priority getPriority()
90 {
91 return _priority;
92 }
93
94 /***
95 * Return a string representation of this message.
96 * @return string
97 */
98 public final String toString()
99 {
100 return "Message("+_message.toString()+")";
101 }
102 }
This page was automatically generated by Maven