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.util.ArrayList;
011:
012: /**
013: * Represents a list of values for attributes of an
014: * MBean. The methods used for the insertion of {@link javax.management.Attribute Attribute} objects in
015: * the <CODE>AttributeList</CODE> overrides the corresponding methods in the superclass
016: * <CODE>ArrayList</CODE>. This is needed in order to insure that the objects contained
017: * in the <CODE>AttributeList</CODE> are only <CODE>Attribute</CODE> objects. This avoids getting
018: * an exception when retrieving elements from the <CODE>AttributeList</CODE>.
019: *
020: * @author <a href="mailto:young_yy@hotmail.org">Young Yang</a>
021: */
022:
023: public class AttributeList extends ArrayList {
024:
025: /**
026: * Constructs an empty <CODE>AttributeList</CODE>.
027: */
028: public AttributeList() {
029: super ();
030: }
031:
032: /**
033: * Constructs an empty <CODE>AttributeList</CODE> with the initial capacity specified.
034: */
035: public AttributeList(int initialCapacity) {
036: super (initialCapacity);
037: }
038:
039: /**
040: * Constructs an <CODE>AttributeList</CODE> containing the elements of the <CODE>AttributeList</CODE> specified,
041: * in the order in which they are returned by the <CODE>AttributeList</CODE>'s iterator.
042: * The <CODE>AttributeList</CODE> instance has an initial capacity of 110% of the
043: * size of the <CODE>AttributeList</CODE> specified.
044: */
045: public AttributeList(AttributeList list) {
046: super (list);
047: }
048:
049: /**
050: * Adds the <CODE>Attribute</CODE> specified as the last element of the list.
051: *
052: *@param object The attribute to be added.
053: */
054: public void add(Attribute object) {
055: super .add(object);
056: }
057:
058: /**
059: * Inserts the attribute specified as an element at the position specified.
060: * Elements with an index greater than or equal to the current position are
061: * shifted up. If the index is out of range (index < 0 || index >
062: * size() a RuntimeOperationsException should be raised, wrapping the
063: * java.lang.IndexOutOfBoundsException thrown.
064: *
065: * @param object The <CODE>Attribute</CODE> object to be inserted.
066: * @param index The position in the list where the new <CODE>Attribute</CODE> object is to be
067: * inserted.
068: */
069: public void add(int index, Attribute object) {
070: try {
071: super .add(index, object);
072: } catch (IndexOutOfBoundsException e) {
073: throw (new RuntimeOperationsException(e,
074: "The specified index is out of range"));
075: }
076: }
077:
078: /**
079: * Sets the element at the position specified to be the attribute specified.
080: * The previous element at that position is discarded. If the index is
081: * out of range (index < 0 || index > size() a RuntimeOperationsException should
082: * be raised, wrapping the java.lang.IndexOutOfBoundsException thrown.
083: *
084: * @param object The value to which the attribute element should be set.
085: * @param index The position specified.
086: */
087: public void set(int index, Attribute object) {
088: try {
089: super .set(index, object);
090: } catch (IndexOutOfBoundsException e) {
091: throw (new RuntimeOperationsException(e,
092: "The specified index is out of range"));
093: }
094: }
095:
096: /**
097: * Appends all the elements in the <CODE>AttributeList</CODE> specified to the end
098: * of the list, in the order in which they are returned by the Iterator of
099: * the <CODE>AttributeList</CODE> specified.
100: *
101: * @param list Elements to be inserted into the list.
102: */
103: public boolean addAll(AttributeList list) {
104: return (super .addAll(list));
105: }
106:
107: /**
108: * Inserts all of the elements in the <CODE>AttributeList</CODE> specified into this
109: * list, starting at the specified position, in the order in which they
110: * are returned by the Iterator of the <CODE>AttributeList</CODE> specified. If
111: * the index is out of range (index < 0 || index > size() a RuntimeOperationsException should
112: * be raised, wrapping the java.lang.IndexOutOfBoundsException thrown.
113: *
114: * @param list Elements to be inserted into the list.
115: * @param index Position at which to insert the first element from the <CODE>AttributeList</CODE> specified.
116: *
117: */
118: public boolean addAll(int index, AttributeList list) {
119: try {
120: return (super .addAll(index, list));
121: } catch (IndexOutOfBoundsException e) {
122: throw (new RuntimeOperationsException(e,
123: "The specified index is out of range"));
124: }
125: }
126:
127: }
|