001: /**
002: * The XMOJO Project 5
003: * Copyright © 2003 XMOJO.org. All rights reserved.
004:
005: * NO WARRANTY
006:
007: * BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
008: * THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
009: * OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
010: * PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
011: * OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
012: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
013: * TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE
014: * LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
015: * REPAIR OR CORRECTION.
016:
017: * IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
018: * ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
019: * THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
020: * GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
021: * USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF
022: * DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
023: * PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE),
024: * EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
025: * SUCH DAMAGES.
026: **/package javax.management;
027:
028: import java.util.ArrayList;
029:
030: /**
031: * Represents a list of values for attributes of an MBean. The methods used
032: * for the insertion of {@link javax.management.Attribute Attribute} objects
033: * in the <CODE>AttributeList</CODE> overrides the corresponding methods in
034: * the superclass <CODE>ArrayList</CODE>. This is needed in order to insure
035: * that the objects contained in the <CODE>AttributeList</CODE> are only
036: * <CODE>Attribute</CODE> objects. This avoids getting an exception when
037: * retrieving elements from the <CODE>AttributeList</CODE>.
038: */
039: public class AttributeList extends ArrayList {
040: /**
041: * Constructs an empty AttributeList.
042: */
043: public AttributeList() {
044: super ();
045: }
046:
047: /**
048: * Constructs an <CODE>AttributeList</CODE> containing the elements of the
049: * <CODE>AttributeList</CODE> specified, in the order in which they are
050: * returned by the <CODE>AttributeList</CODE>'s iterator.
051: * The <CODE>AttributeList</CODE> instance has an initial capacity of
052: * 110% of the size of the <CODE>AttributeList</CODE> specified.
053: */
054: public AttributeList(AttributeList list) {
055: super (list);
056: }
057:
058: /**
059: * Constructs an empty AttributeList with the initial capacity specified.
060: *
061: * @param initialCapacity Empty AttributeList is constructed with
062: * the mentioned initial capacity
063: */
064: public AttributeList(int initialCapacity) {
065: super (initialCapacity);
066: }
067:
068: /**
069: * Adds the <CODE>Attribute</CODE> specified as the last element of the list.
070: *
071: * @param object The attribute to be added.
072: */
073: public void add(Attribute object) {
074: super .add(object);
075: }
076:
077: /**
078: * Inserts the attribute specified as an element at the position specified.
079: * Elements with an index greater than or equal to the current position are
080: * shifted up. If the index is out of range (index < 0 || index > size()
081: * a RuntimeOperationsException should be raised, wrapping the
082: * java.lang.IndexOutOfBoundsException thrown.
083: *
084: * @param index The position in the list where the new Attribute object is
085: * to be inserted.
086: *
087: * @param object The Attribute object to be inserted.
088: */
089: public void add(int index, Attribute object) {
090: try {
091: super .add(index, object);
092: } catch (IndexOutOfBoundsException e) {
093: throw new RuntimeOperationsException(e);
094: }
095: }
096:
097: /**
098: * Appends all the elements in the <CODE>AttributeList</CODE> specified to the end
099: * of the list, in the order in which they are returned by the Iterator of
100: * the <CODE>AttributeList</CODE> specified.
101: *
102: * @param list Elements to be inserted into the list.
103: */
104: public boolean addAll(AttributeList list) {
105: try {
106: return super .addAll(list);
107: } catch (IndexOutOfBoundsException e) {
108: throw new RuntimeOperationsException(e);
109: }
110: }
111:
112: /**
113: * Inserts all of the elements in the <CODE>AttributeList</CODE> specified
114: * into this list, starting at the specified position, in the order in
115: * which they are returned by the Iterator of the <CODE>AttributeList</CODE>
116: * specified. If the index is out of range (index < 0 || index > size() a
117: * RuntimeOperationsException should be raised, wrapping
118: * the java.lang.IndexOutOfBoundsException thrown.
119: *
120: * @param list Elements to be inserted into the list.
121: *
122: * @param index Position at which to insert the first element from the
123: * <CODE>AttributeList</CODE> specified.
124: */
125: public boolean addAll(int index, AttributeList list) {
126: try {
127: return (super .addAll(index, list));
128: } catch (IndexOutOfBoundsException e) {
129: throw (new RuntimeOperationsException(e,
130: "The specified index is out of range"));
131: }
132: }
133:
134: /**
135: * Sets the element at the position specified to be the attribute specified.
136: * The previous element at that position is discarded. If the index is out
137: * of range (index < 0 || index > size() a RuntimeOperationsException should
138: * be raised, wrapping the java.lang.IndexOutOfBoundsException thrown.
139: *
140: * @param object The value to which the attribute element should be set.
141: *
142: * @param index The position specified.
143: */
144: public void set(int index, Attribute object) {
145: try {
146: super .set(index, object);
147: } catch (IndexOutOfBoundsException e) {
148: throw (new RuntimeOperationsException(e,
149: "The specified index is out of range"));
150: }
151: }
152: }
|