User: juhalindfors Date: 01/12/06 16:19:49 Modified: src/main/javax/management ObjectName.java Log: jboss style + tweaks Revision Changes Path 1.2 +83 -51 jmx/src/main/javax/management/ObjectName.java Index: ObjectName.java =================================================================== RCS file: /cvsroot/jboss/jmx/src/main/javax/management/ObjectName.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ObjectName.java 2001/12/03 02:01:30 1.1 +++ ObjectName.java 2001/12/07 00:19:49 1.2 @@ -1,5 +1,8 @@ /* - * LGPL + * JBoss, the OpenSource J2EE webOS + * + * Distributable under LGPL license. + * See terms of license at gnu.org. */ package javax.management; @@ -13,96 +16,121 @@ import java.util.Iterator; import java.util.StringTokenizer; -public class ObjectName extends java.lang.Object implements java.io.Serializable { +/** + * Object name represents the MBean reference. + * + * @see javax.management.MBeanServer + * + * @author <a href="mailto:[EMAIL PROTECTED]">Juha Lindfors</a>. + * @version $Revision: 1.2 $ + * + */ +public class ObjectName implements java.io.Serializable +{ + + // Attributes ---------------------------------------------------- private boolean isPattern = false; private boolean isPropertyPattern = false; private Map keyMap = new HashMap(); - private String domain = "DefaultDomain"; -// FIXME: get the real default domain name + private String domain = ""; private String canonicalName = null; - private int hashCode; - - public ObjectName(String name) throws MalformedObjectNameException { - + + // Constructors -------------------------------------------------- + public ObjectName(String name) throws MalformedObjectNameException + { + if (name == null) + throw new MalformedObjectNameException("null name"); + if (name.indexOf(':') == -1) throw new MalformedObjectNameException("missing domain"); - - if (name.startsWith(":")) - this.domain = "DefaultDomain"; - else + + if (!(name.startsWith(":"))) this.domain = name.substring(0, name.indexOf(':')); - + String keys = name.substring(name.indexOf(':') + 1, name.length()); - StringTokenizer tokenizer = new StringTokenizer(keys, ","); - - while(tokenizer.hasMoreTokens()) { + + while(tokenizer.hasMoreTokens()) + { String key = tokenizer.nextToken(); keyMap.put(key.substring(0, key.indexOf('=')), key.substring(key.indexOf('=') + 1, key.length())); } - + this.canonicalName = getDomain() + ":" + getCanonicalKeyPropertyListString(); - this.hashCode = canonicalName.hashCode(); } - public ObjectName(java.lang.String domain, - java.lang.String key, - java.lang.String value) - throws MalformedObjectNameException { + public ObjectName(String domain, String key, String value) + throws MalformedObjectNameException + { this.domain = domain; this.keyMap.put(key, value); + this.canonicalName = domain + ":" + key + "=" + value; } - public ObjectName(String domain, Hashtable table) throws MalformedObjectNameException { + public ObjectName(String domain, Hashtable table) throws MalformedObjectNameException + { this.domain = domain; this.keyMap.putAll(table); + this.canonicalName = domain + ":" + getCanonicalKeyPropertyListString(); } - public boolean equals(Object object) { + // Public ------------------------------------------------------ + public boolean equals(Object object) + { if (!(object instanceof ObjectName)) return false; - + ObjectName oname = (ObjectName)object; - - return (oname.getCanonicalName().equals(getCanonicalName())); + + return (oname.getCanonicalName().equals(canonicalName)); } - public int hashCode() { + public int hashCode() + { return canonicalName.hashCode(); } - public String toString() { + public String toString() + { return canonicalName; } - public boolean isPattern() { + public boolean isPattern() + { return isPattern; } - public String getCanonicalName() { + public String getCanonicalName() + { return canonicalName; } - - public String getDomain() { + + public String getDomain() + { return domain; } - public String getKeyProperty(String property) { + public String getKeyProperty(String property) + { return (String)keyMap.get(property); } - public Hashtable getKeyPropertyList() { + public Hashtable getKeyPropertyList() + { return new Hashtable(keyMap); } - public String getKeyPropertyListString() { - Iterator it = keyMap.keySet().iterator(); + public String getKeyPropertyListString() + { + // FIXME: its immutable object, build this only once + String[] keys = (String[])keyMap.keySet().toArray(new String[0]); StringBuffer strBuffer = new StringBuffer(1000); - - while(it.hasNext()) { - String key = (String)it.next(); + + for (int i = 0; i < keys.length; ++i) + { + String key = keys[i]; strBuffer.append(key); strBuffer.append('='); strBuffer.append(keyMap.get(key)); @@ -112,21 +140,24 @@ return strBuffer.toString(); } - - public String getCanonicalKeyPropertyListString() { + public String getCanonicalKeyPropertyListString() + { + // FIXME: its immutable object, build this only once Iterator it = keyMap.keySet().iterator(); ArrayList list = new ArrayList(); - - while(it.hasNext()) { + + while(it.hasNext()) + { String key = (String)it.next(); - list.add(new String(key + "=" + keyMap.get(key))); + list.add(new String(key + "=" + keyMap.get(key))); } - + Collections.sort(list); StringBuffer strBuffer = new StringBuffer(); - + it = list.iterator(); - while(it.hasNext()) { + while(it.hasNext()) + { strBuffer.append(it.next()); strBuffer.append(','); } @@ -134,11 +165,12 @@ return strBuffer.toString(); } - public boolean isPropertyPattern() { + public boolean isPropertyPattern() + { + // FIXME: patterns not implemented return isPropertyPattern; } - +} -}
_______________________________________________ Jboss-development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development