/* * @(#)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: *

- null parameter *

or *

- 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)); } }