/* * @(#)RoleUnresolvedList.java 1.21 03/12/19 * * Copyright 2004 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package javax.management.relation; import java.util.ArrayList; import java.util.List; import java.util.Iterator; /** * A RoleUnresolvedList represents a list of RoleUnresolved objects, * representing roles not retrieved from a relation due to a problem * encountered when trying to access (read or write to roles). * * @since 1.5 */ public class RoleUnresolvedList extends ArrayList { /* Serial version */ private static final long serialVersionUID = 4054902803091433324L; // // Constructors // /** * Constructs an empty RoleUnresolvedList. */ public RoleUnresolvedList() { super(); return; } /** * Constructs an empty RoleUnresolvedList with the initial capacity * specified. * * @param theInitialCapacity initial capacity */ public RoleUnresolvedList(int theInitialCapacity) { super(theInitialCapacity); return; } /** * Constructs a RoleUnresolvedList containing the elements of the * List specified, in the order in which they are returned * by the List's iterator. The RoleUnresolvedList instance has * an initial capacity of 110% of the size of the List * specified. * * @param theList list of RoleUnresolved objects * * @exception IllegalArgumentException if: *
- null parameter *
or *
- an element in the List is not a RoleUnresolved
*/
public RoleUnresolvedList(List theList)
throws IllegalArgumentException {
if (theList == null) {
String excMsg = "Invalid parameter";
throw new IllegalArgumentException(excMsg);
}
int i = 0;
for (Iterator eltIter = theList.iterator();
eltIter.hasNext();) {
Object currElt = eltIter.next();
if (!(currElt instanceof RoleUnresolved)) {
StringBuffer excMsgStrB = new StringBuffer();
String excMsg = "An element is not a RoleUnresolved at index ";
excMsgStrB.append(excMsg);
excMsgStrB.append(i);
throw new IllegalArgumentException(excMsgStrB.toString());
}
i++;
super.add(currElt);
}
return;
}
//
// Accessors
//
/**
* Adds the RoleUnresolved specified as the last element of the list.
*
* @param theRoleUnres - the unresolved role to be added.
*
* @exception IllegalArgumentException if the unresolved role is null.
*/
public void add(RoleUnresolved theRoleUnres)
throws IllegalArgumentException {
if (theRoleUnres == null) {
String excMsg = "Invalid parameter";
throw new IllegalArgumentException(excMsg);
}
super.add(theRoleUnres);
return;
}
/**
* Inserts the unresolved role specified as an element at the position
* specified.
* Elements with an index greater than or equal to the current position are
* shifted up.
*
* @param index - The position in the list where the new
* RoleUnresolved object is to be inserted.
* @param theRoleUnres - The RoleUnresolved object to be inserted.
*
* @exception IllegalArgumentException if the unresolved role is null.
* @exception IndexOutOfBoundsException if index is out of range
* (index < 0 || index > size()
).
*/
public void add(int index,
RoleUnresolved theRoleUnres)
throws IllegalArgumentException,
IndexOutOfBoundsException {
if (theRoleUnres == null) {
String excMsg = "Invalid parameter";
throw new IllegalArgumentException(excMsg);
}
super.add(index, theRoleUnres);
return;
}
/**
* Sets the element at the position specified to be the unresolved role
* specified.
* The previous element at that position is discarded.
*
* @param index - The position specified.
* @param theRoleUnres - The value to which the unresolved role element
* should be set.
*
* @exception IllegalArgumentException if the unresolved role is null.
* @exception IndexOutOfBoundsException if index is out of range
* (index < 0 || index >= size()
).
*/
public void set(int index,
RoleUnresolved theRoleUnres)
throws IllegalArgumentException,
IndexOutOfBoundsException {
if (theRoleUnres == null) {
String excMsg = "Invalid parameter";
throw new IllegalArgumentException(excMsg);
}
super.set(index, theRoleUnres);
return;
}
/**
* Appends all the elements in the RoleUnresolvedList specified to the end
* of the list, in the order in which they are returned by the Iterator of
* the RoleUnresolvedList specified.
*
* @param theRoleUnresolvedList - Elements to be inserted into the list
* (can be null).
*
* @return true if this list changed as a result of the call.
*
* @exception IndexOutOfBoundsException if accessing with an index
* outside of the list.
*/
public boolean addAll(RoleUnresolvedList theRoleUnresolvedList)
throws IndexOutOfBoundsException {
if (theRoleUnresolvedList == null) {
return true;
}
return (super.addAll(theRoleUnresolvedList));
}
/**
* Inserts all of the elements in the RoleUnresolvedList specified into
* this list, starting at the specified position, in the order in which
* they are returned by the Iterator of the RoleUnresolvedList specified.
*
* @param index - Position at which to insert the first element from the
* RoleUnresolvedList specified.
* @param theRoleUnresolvedList - Elements to be inserted into the list.
*
* @return true if this list changed as a result of the call.
*
* @exception IllegalArgumentException if the role is null.
* @exception IndexOutOfBoundsException if index is out of range
* (index < 0 || index > size()
).
*/
public boolean addAll(int index,
RoleUnresolvedList theRoleUnresolvedList)
throws IllegalArgumentException,
IndexOutOfBoundsException {
if (theRoleUnresolvedList == null) {
String excMsg = "Invalid parameter";
throw new IllegalArgumentException(excMsg);
}
return (super.addAll(index, theRoleUnresolvedList));
}
}