package org.jfox.mx;

import java.io.Serializable;

import org.jfox.mx.MxFeatureInfo;

/**
 * Describes an argument of an operation exposed by an MBean.
 *
 * @author <a href="mailto:young_yy@hotmail.org">Young Yang</a>
 */

public class MxParameterInfo extends MxFeatureInfo implements Serializable, Cloneable  {

  public static MxParameterInfo[] NO_PARAMS = new MxParameterInfo[0];
  /**
   * The type or class name of the data.
   */
  private String type = null;

  /**
   * Constructs a <CODE>MxParameterInfo</CODE> object.
   *
   * @param name The name of the data
   * @param type The type or class name of the data
   * @param description A human readable description of the data. Optional.
   */
  public MxParameterInfo(String name,
                            String type,
                            String description) {

    super(name, description);
    this.type = type;
    this.description = description;
  }

  public Object clone() {
    try {
      return super.clone();
    }
    catch(CloneNotSupportedException clonenotsupportedexception) {
      return null;
    }
  }

  /**
   * Returns the type or class name of the data.
   */
  public String getType() {
    return type;
  }

}