- /*
- * @(#)RoleList.java 1.20 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;
- import java.util.Collection; // for Javadoc
-
- /**
- * A RoleList represents a list of roles (Role objects). It is used as
- * parameter when creating a relation, and when trying to set several roles in
- * a relation (via 'setRoles()' method). It is returned as part of a
- * RoleResult, to provide roles successfully retrieved.
- *
- * @since 1.5
- */
- public class RoleList extends ArrayList {
-
- /* Serial version */
- private static final long serialVersionUID = 5568344346499649313L;
-
- //
- // Constructors
- //
-
- /**
- * Constructs an empty RoleList.
- */
- public RoleList() {
- super();
- return;
- }
-
- /**
- * Constructs an empty RoleList with the initial capacity
- * specified.
- *
- * @param theInitialCapacity initial capacity
- */
- public RoleList(int theInitialCapacity) {
- super(theInitialCapacity);
- return;
- }
-
- /**
- * Constructs a RoleList containing the elements of the
- * List specified, in the order in which they are returned
- * by the List's iterator. The RoleList instance has
- * an initial capacity of 110% of the size of the List
- * specified.
- *
- * @param theList list of Role objects
- *
- * @exception IllegalArgumentException if:
- * <P>- null parameter
- * <P>or
- * <P>- an element in the List is not a Role
- */
- public RoleList(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 Role)) {
- StringBuffer excMsgStrB = new StringBuffer();
- String excMsg = "An element is not a Role at index ";
- excMsgStrB.append(excMsg);
- excMsgStrB.append(i);
- throw new IllegalArgumentException(excMsgStrB.toString());
- }
- i++;
- super.add(currElt);
- }
- return;
- }
-
- //
- // Accessors
- //
-
- /**
- * Adds the Role specified as the last element of the list.
- *
- * @param theRole the role to be added.
- *
- * @exception IllegalArgumentException if the role is null.
- */
- public void add(Role theRole)
- throws IllegalArgumentException {
-
- if (theRole == null) {
- String excMsg = "Invalid parameter";
- throw new IllegalArgumentException(excMsg);
- }
- super.add(theRole);
- return;
- }
-
- /**
- * Inserts the 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 theIndex The position in the list where the new Role
- * object is to be inserted.
- * @param theRole The Role object to be inserted.
- *
- * @exception IllegalArgumentException if the role is null.
- * @exception IndexOutOfBoundsException if accessing with an index
- * outside of the list.
- */
- public void add(int theIndex,
- Role theRole)
- throws IllegalArgumentException,
- IndexOutOfBoundsException {
-
- if (theRole == null) {
- String excMsg = "Invalid parameter";
- throw new IllegalArgumentException(excMsg);
- }
-
- super.add(theIndex, theRole);
- return;
- }
-
- /**
- * Sets the element at the position specified to be the role
- * specified.
- * The previous element at that position is discarded.
- *
- * @param theIndex The position specified.
- * @param theRole The value to which the role element should be set.
- *
- * @exception IllegalArgumentException if the role is null.
- * @exception IndexOutOfBoundsException if accessing with an index
- * outside of the list.
- */
- public void set(int theIndex,
- Role theRole)
- throws IllegalArgumentException,
- IndexOutOfBoundsException {
-
- if (theRole == null) {
- // Revisit [cebro] Localize message
- String excMsg = "Invalid parameter.";
- throw new IllegalArgumentException(excMsg);
- }
-
- super.set(theIndex, theRole);
- return;
- }
-
- /**
- * Appends all the elements in the RoleList specified to the end
- * of the list, in the order in which they are returned by the Iterator of
- * the RoleList specified.
- *
- * @param theRoleList 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.
- *
- * @see ArrayList#addAll(Collection)
- */
- public boolean addAll(RoleList theRoleList)
- throws IndexOutOfBoundsException {
-
- if (theRoleList == null) {
- return true;
- }
-
- return (super.addAll(theRoleList));
- }
-
- /**
- * Inserts all of the elements in the RoleList specified into this
- * list, starting at the specified position, in the order in which they are
- * returned by the Iterator of the RoleList specified.
- *
- * @param theIndex Position at which to insert the first element from the
- * RoleList specified.
- * @param theRoleList 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 accessing with an index
- * outside of the list.
- *
- * @see ArrayList#addAll(int, Collection)
- */
- public boolean addAll(int theIndex,
- RoleList theRoleList)
- throws IllegalArgumentException,
- IndexOutOfBoundsException {
-
- if (theRoleList == null) {
- // Revisit [cebro] Localize message
- String excMsg = "Invalid parameter.";
- throw new IllegalArgumentException(excMsg);
- }
-
- return (super.addAll(theIndex, theRoleList));
- }
- }