diff options
Diffstat (limited to 'libjava/classpath/javax/management/MBeanAttributeInfo.java')
-rw-r--r-- | libjava/classpath/javax/management/MBeanAttributeInfo.java | 315 |
1 files changed, 0 insertions, 315 deletions
diff --git a/libjava/classpath/javax/management/MBeanAttributeInfo.java b/libjava/classpath/javax/management/MBeanAttributeInfo.java deleted file mode 100644 index 950e063..0000000 --- a/libjava/classpath/javax/management/MBeanAttributeInfo.java +++ /dev/null @@ -1,315 +0,0 @@ -/* MBeanAttributeInfo.java -- Information about an attribute of a bean. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - -package javax.management; - -import java.lang.reflect.Method; -import java.lang.reflect.Type; - -/** - * Describes the attributes of a management bean. - * The information in this class is immutable as standard. - * Of course, subclasses may change this, but this - * behaviour is not recommended. - * - * @author Andrew John Hughes (gnu_andrew@member.fsf.org) - * @since 1.5 - */ -public class MBeanAttributeInfo - extends MBeanFeatureInfo - implements Cloneable -{ - - /** - * Compatible with JDK 1.6 - */ - private static final long serialVersionUID = 8644704819898565848L; - - /** - * The type of the attribute. - * - * @serial the attribute type. - */ - private String attributeType; - - /** - * True if the attribute's value can be changed. - * - * @serial true if the value can be changed. - */ - private boolean isWrite; - - /** - * True if the attribute's value can be read. - * - * @serial true if the value can be read. - */ - private boolean isRead; - - /** - * True if the attribute is a boolean and thus - * has a isXXX accessor rather than a getXXX accessor. - * - * @serial true if the attribute has an isXXX accessor. - */ - private boolean is; - - /** - * Constructs a new {@link MBeanAttributeInfo} using the specified - * name and description, with the given accessor and mutator - * methods. A <code>null</code> value for the accessor method - * indicates that the value can not be read. A <code>null</code> - * value for the mutator method indicates that the value can not be - * changed. - * - * @param name the name of the attribute. - * @param desc a description of the attribute. - * @param getter the accessor method, or <code>null</code> if the value - * can not be read. - * @param setter the mutator method, or <code>null</code> if the value - * can not be changed. - * @throws IntrospectionException if both the accessor and mutator method - * are <code>null</code>. - */ - public MBeanAttributeInfo(String name, String desc, - Method getter, Method setter) - throws IntrospectionException - { - super(name, desc); - if (getter == null && setter == null) - throw new IntrospectionException("Both the getter and setter methods can " + - "not be null."); - if (getter == null) - { - Type t = setter.getGenericParameterTypes()[0]; - if (t instanceof Class) - attributeType = ((Class<?>) t).getName(); - else - attributeType = t.toString(); - isRead = false; - is = false; - } - else - { - Type t = getter.getGenericReturnType(); - if (t instanceof Class) - attributeType = ((Class<?>) t).getName(); - else - attributeType = t.toString(); - isRead = true; - is = getter.getName().startsWith("is"); - } - if (setter != null) - isWrite = true; - } - - /** - * Constructs a new {@link MBeanAttributeInfo} using the specified - * name, description and type with the given settings for the accessor - * and mutator methods. - * - * @param name the name of the attribute. - * @param type the type of the attribute, in the form of its class name. - * @param desc a description of the attribute. - * @param isReadable true if the attribute's value can be read. - * @param isWritable true if the attribute's value can be changed. - * @param isIs true if the attribute uses an accessor of the form isXXX. - * @throws IllegalArgumentException if the attribute is both unreadable - * and unwritable. - */ - public MBeanAttributeInfo(String name, String type, String desc, - boolean isReadable, boolean isWritable, - boolean isIs) - { - super(name, desc); - if (!isReadable && !isWritable) - throw new IllegalArgumentException("The attribute can not be both " + - "unreadable and unwritable."); - attributeType = type; - isRead = isReadable; - isWrite = isWritable; - is = isIs; - } - - /** - * Returns a clone of this instance. The clone is created - * using just the method provided by {@link java.lang.Object}. - * Thus, the clone is just a shallow clone as returned by - * that method, and does not contain any deeper cloning based - * on the subject of this class. - * - * @return a clone of this instance. - * @see java.lang.Cloneable - */ - public Object clone() - { - try - { - return super.clone(); - } - catch (CloneNotSupportedException e) - { - /* This shouldn't happen; we implement Cloneable */ - throw new IllegalStateException("clone() called on " + - "non-cloneable object."); - } - } - - /** - * Compares this feature with the supplied object. This - * returns true iff the object is an instance of - * {@link MBeanAttributeInfo}, {@link Object#equals()} - * returns true for a comparison of both the name and - * description of this attribute with that of the specified - * object (performed by the superclass), and the type and - * boolean flags of the two instances are equal. - * - * @param obj the object to compare. - * @return true if the object is a {@link MBeanAttributeInfo} - * instance, - * <code>name.equals(object.getName())</code>, - * <code>description.equals(object.getDescription())</code>, - * <code>attributeType.equals(object.getType())</code>, - * <code>isRead == object.isReadable()</code>, - * <code>isWrite == object.isWritable()</code>, - * <code>is == object.isIs()</code> - */ - public boolean equals(Object obj) - { - if (!(obj instanceof MBeanAttributeInfo)) - return false; - if (!(super.equals(obj))) - return false; - MBeanAttributeInfo o = (MBeanAttributeInfo) obj; - return (attributeType.equals(o.getType()) && - isRead == o.isReadable() && - isWrite == o.isWritable() && - is == o.isIs()); - } - - /** - * Returns the type of this attribute, in the form of its class name. - * - * @return the type of this attribute. - */ - public String getType() - { - return attributeType; - } - - /** - * Returns the hashcode of the attribute information as the sum of - * the hashcode of the superclass, the hashcode of the type, - * the hashcode of {@link #isReadable()}, twice the hashcode - * of {@link #isWritable()} and four times the hashcode - * of {@link #isIs()}. - * - * @return the hashcode of the attribute information. - */ - public int hashCode() - { - return super.hashCode() + attributeType.hashCode() - + Boolean.valueOf(isRead).hashCode() - + (2 * Boolean.valueOf(isWrite).hashCode()) - + (4 * Boolean.valueOf(is).hashCode()); - } - - /** - * Returns true if the accessor method of this attribute - * is of the form <code>isXXX</code>. - * - * @return true if the accessor takes the form <code>isXXX</code>. - */ - public boolean isIs() - { - return is; - } - - /** - * Returns true if value of this attribute can be read. - * - * @return true if the value of the attribute can be read. - */ - public boolean isReadable() - { - return isRead; - } - - /** - * Returns true if the value of this attribute can be changed. - * - * @return true if the value of the attribute can be changed. - */ - public boolean isWritable() - { - return isWrite; - } - - /** - * <p> - * Returns a textual representation of this instance. This - * is constructed using the class name - * (<code>javax.management.MBeanAttributeInfo</code>), - * the name, description and type of the attribute and the - * current settings of the {@link #isReadable()}, - * {@link #isWritable()} and {@link #isIs()} properties. - * </p> - * <p> - * As instances of this class are immutable, the return value - * is computed just once for each instance and reused - * throughout its life. - * </p> - * - * @return a @link{java.lang.String} instance representing - * the instance in textual form. - */ - public String toString() - { - if (string == null) - { - super.toString(); - string = string.substring(0, string.length() - 1) - + ",type=" + attributeType - + ",isReadable=" + (isRead ? "yes" : "no") - + ",isWritable=" + (isWrite ? "yes" : "no") - + ",isIs=" + (is ? "yes" : "no") - + "]"; - } - return string; - } - -} |