001: /*
002: * BEGIN_HEADER - DO NOT EDIT
003: *
004: * The contents of this file are subject to the terms
005: * of the Common Development and Distribution License
006: * (the "License"). You may not use this file except
007: * in compliance with the License.
008: *
009: * You can obtain a copy of the license at
010: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
011: * See the License for the specific language governing
012: * permissions and limitations under the License.
013: *
014: * When distributing Covered Code, include this CDDL
015: * HEADER in each file and include the License file at
016: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
017: * If applicable add the following below this CDDL HEADER,
018: * with the fields enclosed by brackets "[]" replaced with
019: * your own identifying information: Portions Copyright
020: * [year] [name of copyright owner]
021: */
022:
023: /*
024: * @(#)MBeanSet.java
025: * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
026: *
027: * END_HEADER - DO NOT EDIT
028: */
029: package com.sun.jbi.management;
030:
031: import javax.management.ObjectName;
032:
033: /**
034: * MBeanSet is used to manage a set of Standard MBean's. We provide methods
035: * that to operate on the set as a whole; for example register and
036: * deregister the set.
037: *
038: * All operations are keyed by the Object Name of the MBean.
039: *
040: * @author Sun Microsystems, Inc.
041: */
042: public interface MBeanSet {
043: /**
044: * Add an Standard MBean to the Set that can potentially emit JMX notifications.
045: *
046: * @param theMBeanName - the object name of the mbean to add.
047: * @param theMBeanDefinition - the interface that defines the MBean.
048: * @param theMBeanImplementation - an instance of the MBean implementation class.
049: * @param isEmitter - true if this MBean wants to emit jmx notifications.
050: *
051: * @return true if mbean is added to the set, otherwise false.
052: */
053: boolean add(ObjectName theMBeanName, Class theMBeanDefinition,
054: Object theMBeanImplementation, boolean isEmitter);
055:
056: /**
057: * Add an Standard MBean to the Set that will not emit notifications.
058: *
059: * @param theMBeanName - the object name of the mbean to add.
060: * @param theMBeanDefinition - the interface that defines the MBean.
061: * @param theMBeanImplementation - an instance of the MBean implementation class.
062: *
063: * @return true if mbean is added to the set, otherwise false.
064: */
065: boolean add(ObjectName theMBeanName, Class theMBeanDefinition,
066: Object theMBeanImplementation);
067:
068: /**
069: * Replace a Standard MBean in the Set that can potentially emit JMX notifications.
070: *
071: * @param theMBeanName - the object name of the mbean to replace.
072: * @param theMBeanDefinition - the interface that defines the MBean.
073: * @param theMBeanImplementation - an instance of the MBean implementation class.
074: * @param isEmitter - true if this MBean wants to emit jmx notifications.
075: *
076: * @return true if mbean is replaced in the set, otherwise false.
077: */
078: boolean replace(ObjectName theMBeanName, Class theMBeanDefinition,
079: Object theMBeanImplementation, boolean isEmitter);
080:
081: /**
082: * Replace a Standard MBean in the Set.
083: *
084: * @param theMBeanName - the object name of the mbean to replace.
085: * @param theMBeanDefinition - the interface that defines the MBean.
086: * @param theMBeanImplementation - an instance of the MBean implementation class.
087: *
088: * @return true if mbean is replaced in the set, otherwise false.
089: */
090: boolean replace(ObjectName theMBeanName, Class theMBeanDefinition,
091: Object theMBeanImplementation);
092:
093: /**
094: * Delete an MBean from an existing MBean Set.
095: *
096: * @param theMBeanName - the object name of the mbean to delete.
097: *
098: * @return true if the MBean is deleted from the set, otherwise false.
099: */
100: boolean delete(ObjectName theMBeanName);
101:
102: /**
103: * True if an MBean exists in the named MBean Set.
104: *
105: * @param theMBeanName - the object name of the mbean to check.
106: *
107: * @return true if the MBean exists in the set, otherwise false.
108: */
109: boolean exists(ObjectName theMBeanName);
110:
111: /**
112: * True if an MBean is part of this set and is registered.
113: *
114: * @param theMBeanName - the object name of the mbean to check.
115: *
116: * @return true if the MBean exists in the set, otherwise false.
117: */
118: boolean isRegistered(ObjectName theMBeanName);
119:
120: /**
121: * Register all of the MBean's in an MBean Set.
122: *
123: * Okay if some are already registered.
124: * Ignores null entries.
125: *
126: * To re-register, you must unregister the named object before
127: * registering the set.
128: *
129: * @return true iff all mbeans are now registered.
130: */
131: boolean register();
132:
133: /**
134: * Unregister all of the MBean's in an MBean Set.
135: *
136: * It is not an error to unregister an MBean that is not registered.
137: *
138: * @return true iff all mbeans are unregistered.
139: */
140: boolean unregister();
141:
142: /**
143: * dump contents of an MBeanSet to the log.
144: * @param aTitle - the title of the dump.
145: */
146: void dump(String aTitle);
147: }
|