001: /* JFox, the OpenSource J2EE Application Server
002: *
003: * Copyright (C) 2002 huihoo.org
004: * Distributable under GNU LGPL license
005: * See the GNU Lesser General Public License for more details.
006: */
007:
008: package javax.management;
009:
010: import java.io.Serializable;
011:
012: /**
013: *
014: * @author <a href="mailto:young_yy@hotmail.org">Young Yang</a>
015: */
016:
017: /**
018: * Used to represent the object name of an MBean and its class name.
019: * If the MBean is a Dynamic MBean the class name should be retrieved from the <CODE>MBeanInfo</CODE> it provides.
020: */
021: public class ObjectInstance implements Serializable {
022:
023: /**
024: * Object name.
025: */
026: private ObjectName name;
027:
028: /**
029: * Class name.
030: */
031: private String className;
032:
033: /**
034: * Allows an object instance to be created given a string representation of
035: * an object name and the full class name, including the package name.
036: *
037: * @param objectName A string representation of the object name.
038: * @param className The full class name, including the package name, of the object instance.
039: * If the MBean is a Dynamic MBean the class name should be retrieved from the <CODE>MBeanInfo</CODE> it provides.
040: *
041: * @exception MalformedObjectNameException The string passed as a parameter does not have the right format.
042: *
043: */
044: public ObjectInstance(String objectName, String className)
045: throws MalformedObjectNameException {
046: ObjectName objName = new ObjectName(objectName);
047:
048: if (objName.isPattern()) {
049: new RuntimeOperationsException(
050: new IllegalArgumentException("Invalid name: "
051: + objName.toString()));
052: }
053: this .name = objName;
054: this .className = className;
055: }
056:
057: /**
058: * Allows an object instance to be created given an object name and
059: * the full class name, including the package name.
060: *
061: * @param objectName The object name.
062: * @param className The full class name, including the package name, of the object instance.
063: * If the MBean is a Dynamic MBean the class name should be retrieved from the <CODE>MBeanInfo</CODE> it provides.
064: *
065: */
066: public ObjectInstance(ObjectName objectName, String className) {
067: if (objectName.isPattern()) {
068: new RuntimeOperationsException(
069: new IllegalArgumentException("Invalid name: "
070: + objectName.toString()));
071: }
072: this .name = objectName;
073: this .className = className;
074: }
075:
076: /**
077: * Compares the current object instance with another object instance.
078: *
079: * @param object The object instance that the current object instance is to be compared
080: * with.
081: *
082: * @return True if the two object instances are equal, otherwise false.
083: */
084: public boolean equals(Object object) {
085: if (!(object instanceof ObjectInstance)) {
086: return false;
087: }
088: ObjectInstance val = (ObjectInstance) object;
089: return ((name.equals(val.getObjectName())) && (className
090: .equals(val.getClassName())));
091: }
092:
093: /**
094: * Returns the object name part.
095: */
096: public ObjectName getObjectName() {
097: return name;
098: }
099:
100: /**
101: * Returns the class part
102: */
103: public String getClassName() {
104: return className;
105: }
106:
107: }
|