1 /*
2 * $HeadURL: $
3 * $Date: $
4 * $Revision: $
5 * $Author: $
6 *
7 * Copyright (c) 2006 MindTree Consulting Ltd.
8 *
9 * This file is part of Insight.
10 *
11 * Insight is free software: you can redistribute it and/or modify it under the
12 * terms of the GNU General Public License as published by the Free Software
13 * Foundation, either version 3 of the License, or (at your option) any later
14 * version.
15 *
16 * Insight is distributed in the hope that it will be useful, but
17 * WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
19 * Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public License along with
22 * Insight. If not, see <http://www.gnu.org/licenses/>.
23 */
24 package com.mindtree.techworks.insight.reporting.jobs.message;
25
26 import java.io.Serializable;
27
28 import com.mindtree.techworks.insight.filter.criteria.FilterCriteria;
29
30 /**
31 * A <code>JobMessage</code> is the data passed on to a <code>Job</code> for
32 * executing its task. Specializations of this class would have additional
33 * information regardin the data content and action modifiers for the
34 * <code>Job</code>. For example, an email message might have data like the
35 * mesage body, the recepients address, etc.
36 * <p>
37 * A <code>JobMessage</code> is uniquely identified by the type string
38 * returned by the object (the <code>#getJobMessageType()</code> method).
39 * </p>
40 * <p>
41 * The <code>DefaultJobMessage</code> implementation provided is supported by
42 * all <code>Job</code>s.
43 * </p>
44 *
45 * @see com.mindtree.techworks.insight.reporting.jobs.Job
46 * @see com.mindtree.techworks.insight.reporting.jobs.message.DefaultJobMessage
47 *
48 * @author <a href="mailto:bindul_bhowmik@mindtree.com">Bindul Bhowmik</a>
49 * @version $Revision: 27 $ $Date: 2007-12-16 04:58:03 -0700 (Sun, 16 Dec 2007) $
50 * @since Insight 1.5
51 */
52 public interface JobMessage extends Serializable {
53
54 // -------------------------------------------------------------------------
55 // Constants
56 // -------------------------------------------------------------------------
57
58 /**
59 * Indicates that the message was generated while Insight was running in the
60 * Interactive mode.
61 */
62 public static final short MODE_INTERACTIVE = 0;
63
64 /**
65 * Indicates that the message was generated while Insight was running in the
66 * Daemon mode.
67 */
68 public static final short MODE_DAEMON = 1;
69
70 /**
71 * Indicates that the message was generated from a Filter action.
72 */
73 public static final int ACTION_FILTER = 1;
74
75 // -------------------------------------------------------------------------
76 // Public Methods
77 // -------------------------------------------------------------------------
78
79 /**
80 * Returns the type of the message. A message may be identified uniquely by
81 * the fully qualified class name of the <code>JobMessage</code> class.
82 *
83 * @return The type of the message.
84 */
85 public String getJobMessageType();
86
87 /**
88 * Returns the criteria that was in use on the action while the message was
89 * generated.
90 *
91 * @return The criteria in use to generate the message.
92 */
93 public FilterCriteria getFilterCriteria();
94
95 /**
96 * Returns the mode in which Insight was running when the message was
97 * generated. It would be one of the <i>MODE_</i> constants.
98 *
99 * @return The mode in which Insight is running.
100 */
101 public short getInsightMode();
102
103 /**
104 * Returns the action which caused the message. See the <i>ACTION_</i>
105 * constants.
106 *
107 * @return The action which caused the message.
108 */
109 public int getAction();
110 }