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.relation;
027:
028: import java.util.List;
029: import java.util.ArrayList;
030: import java.util.Iterator;
031:
032: /**
033: * A RoleUnresolvedList represents a list of RoleUnresolved objects,
034: * representing roles not retrieved from a relation due to a problem
035: * encountered whe trying to access (read or write to roles)
036: */
037: public class RoleUnresolvedList extends ArrayList {
038: /**
039: * Constructs an empty RoleUnresolvedList.
040: */
041: public RoleUnresolvedList() {
042: super ();
043: }
044:
045: /**
046: * Constructs an empty RoleUnresolvedList with the initial capacity specified.
047: *
048: * @param theInitialCapacity - initial capacity
049: */
050: public RoleUnresolvedList(int theInitialCapacity) {
051: super (theInitialCapacity);
052: }
053:
054: /**
055: * Constructs a RoleUnresolvedList containing the elements of the ArrayList
056: * specified, in the order in which they are returned by the ArrayList's
057: * iterator. The RoleUnresolvedList instance has an initial capacity
058: * of 110% of the size of the ArrayList specified.
059: *
060: * @param theList - list of RoleUnresolved objects
061: *
062: * @exception java.lang.IllegalArgumentException - if:
063: * - null parameter or
064: * - an element in the ArrayList is not a RoleUnresolved
065: */
066: public RoleUnresolvedList(List theList)
067: throws IllegalArgumentException {
068: super (theList);
069:
070: if (theList == null)
071: throw new IllegalArgumentException();
072:
073: Iterator iter = super .iterator();
074:
075: while (iter.hasNext()) {
076: Object temp = iter.next();
077:
078: if (!(temp instanceof RoleUnresolved))
079: throw new IllegalArgumentException();
080: }
081: }
082:
083: /**
084: * Inserts the unresolved role specified as an element at the position
085: * specified. Elements with an index greater than or equal to the current
086: * position are shifted up.
087: *
088: * @param theIndex - - The position in the list where the new
089: * RoleUnresolved object is to be inserted.
090: *
091: * @param theRoleUnresolved - - The RoleUnresolved object to be inserted.
092: *
093: * @throws java.lang.IllegalArgumentException - if the unresolved role is null.
094: *
095: * @throws java.lang.IndexOutOfBoundsException If the index exceeds the bounds
096: */
097: public void add(int theIndex, RoleUnresolved theRoleUnres)
098: throws IllegalArgumentException, IndexOutOfBoundsException {
099: if (theRoleUnres == null)
100: throw new IllegalArgumentException();
101:
102: super .add(theIndex, theRoleUnres);
103: }
104:
105: /**
106: * Adds the RoleUnresolved specified as the last element of the list.
107: *
108: * @param theRoleUnres - - the unresolved role to be added.
109: *
110: * @exception java.lang.IllegalArgumentException - if the unresolved role is null.
111: */
112: public void add(RoleUnresolved theRoleUnres)
113: throws IllegalArgumentException {
114: if (theRoleUnres == null)
115: throw new IllegalArgumentException();
116:
117: super .add(theRoleUnres);
118: }
119:
120: /**
121: * Inserts all of the elements in the RoleUnresolvedList specified into
122: * this list, starting at the specified position, in the order in which
123: * they are returned by the Iterator of the RoleUnresolvedList specified.
124: *
125: * @param theIndex - - Position at which to insert the first element from
126: * the RoleUnresolvedList specified.
127: *
128: * @param theRoleUnresolvedList - - Elements to be inserted into the list.
129: *
130: * @throws java.lang.IllegalArgumentException - if the role is null.
131: *
132: * @throws java.lang.IndexOutOfBoundsException - if accessing with an
133: * index outside of the list.
134: *
135: * @return True if the operation is successful otherwise false
136: */
137: public boolean addAll(int theIndex,
138: RoleUnresolvedList theRoleUnresolvedList)
139: throws IllegalArgumentException, IndexOutOfBoundsException {
140: if (theRoleUnresolvedList == null)
141: throw new IllegalArgumentException();
142:
143: return super .addAll(theIndex, theRoleUnresolvedList);
144: }
145:
146: /**
147: * Appends all the elements in the RoleUnresolvedList specified to the end
148: * of the list, in the order in which they are returned by the Iterator of
149: * the RoleUnresolvedList specified.
150: *
151: * @param theRoleUnresolvedList - - Elements to be inserted into
152: * the list (can be null).
153: *
154: * @exception java.lang.IndexOutOfBoundsException - if accessing with
155: * an index outside of the list.
156: */
157: public boolean addAll(RoleUnresolvedList theRoleUnresolvedList)
158: throws IndexOutOfBoundsException {
159: return super .addAll(theRoleUnresolvedList);
160: }
161:
162: /**
163: * Cloning Returns a new RoleList, but no copy of the included elements.
164: *
165: * Overrides:
166: * clone in class java.util.ArrayList
167: *
168: * @return A new RoleList, but no copy of the included elements.
169: */
170: public java.lang.Object clone() {
171: return new RoleUnresolvedList((ArrayList) super .clone());
172: }
173:
174: /**
175: * Sets the element at the position specified to be the unresolved role
176: * specified. The previous element at that position is discarded.
177: *
178: * @param theIndex - - The position specified.
179: *
180: * @param theRoleUnres - - The value to which the unresolved role element
181: * should be set.
182: *
183: * @exception java.lang.IllegalArgumentException - if the unresolved role is null.
184: *
185: * @exception java.lang.IndexOutOfBoundsException if accessing with
186: * an index outside of the list.
187: */
188: public void set(int theIndex, RoleUnresolved theRoleUnres)
189: throws IllegalArgumentException, IndexOutOfBoundsException {
190: if (theRoleUnres == null)
191: throw new IllegalArgumentException();
192:
193: super.set(theIndex, theRoleUnres);
194: }
195: }
|