KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > jmx > adaptor > snmp > agent > NotificationWrapper


1 /*
2  * Copyright (c) 2003, Intracom S.A. - www.intracom.com
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * This package and its source code is available at www.jboss.org
19 **/

20 package org.jboss.jmx.adaptor.snmp.agent;
21
22 import javax.management.Notification JavaDoc;
23
24 /**
25  * <tt>NotificationWrapper</tt> is a "wide" read only interface
26  * providing "unstructured" access to agent internals and paylod carried by
27  * notifications.
28  *
29  * The alternatives were:
30  *
31  * 1. Precompile assumptions regarding the notification stucture and its
32  * payload in the trap factory
33  * 2. Use introspection but with a potential large execution overhead.
34  *
35  * The use of delegated wrappers stands somewhere in the middle. Trap
36  * factory can be extended with the definition and use of new wpappers
37  * that will be able to cope with any kind of notfications. Run time overhead
38  * is minimal as wrappers can be instantiated only once.
39  *
40  * Tags used to locate attributes in the notification fixed (i.e. excluding
41  * user defined fields) payload are defined. Implementations should not use
42  * these tags in any of the notification payload. To avoid conflicts the
43  * following convention is proposed: standard notification payload is qualified
44  * by the "n:" prefix. Agent properties are qualified by the "a:" prefix. User
45  * defined payload can be qualified with e.g. the "u:" prefix
46  *
47  * @version $Revision: 44604 $
48  *
49  * @author <a HREF="mailto:spol@intracom.gr">Spyros Pollatos</a>
50  * @author <a HREF="mailto:dimitris@jboss.org">Dimitris Andreadis</a>
51 **/

52 public interface NotificationWrapper
53 {
54    // Notification content
55
public static final String JavaDoc MESSAGE_TAG = "n:message";
56    public static final String JavaDoc SEQNO_TAG = "n:sequenceNumber";
57    public static final String JavaDoc TSTAMP_TAG = "n:timeStamp";
58    public static final String JavaDoc TYPE_TAG = "n:type";
59    public static final String JavaDoc ALL_TAG = "n:all";
60    public static final String JavaDoc CLASS_TAG = "n:class";
61     
62    // Agent properties
63
public static final String JavaDoc STARTTIME_TAG = "a:startTime";
64    public static final String JavaDoc UPTIME_TAG = "a:uptime";
65    public static final String JavaDoc TRAPCOUNT_TAG = "a:trapCount";
66
67    /**
68     * Sets the uptime clock and trap counter
69    **/

70    public void set(Clock uptime, Counter count);
71    
72    /**
73     * Sets notification to be used as the data source
74     *
75     * @param n the notification to be used as a data source at subsequent calls
76     * of method get
77    **/

78    public void prime(Notification JavaDoc n);
79     
80    /**
81     * Defines the communication protocol between the caller and the data
82     * source (notification). Implementations are expected to map the provided
83     * attribute name to some aspect of the notification payload. The later is
84     * defined by method prime.
85     *
86     * @param attrTag the tag of the attribute the value of which is required
87     * @return the content attrTag maps to
88     * @throws MappingFailedException if for any reason the requested attribute
89     * can not be found
90    **/

91    public Object JavaDoc get(String JavaDoc attrTag)
92        throws MappingFailedException;
93     
94 } // interface NotificationWrapper
95
Popular Tags