/* * JBoss, Home of Professional Open Source. * Copyright 2006, Red Hat Middleware LLC, and individual contributors * as indicated by the @author tags. See the copyright.txt file in the * distribution for a full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package javax.management.relation; import java.util.ArrayList; import java.util.Iterator; import java.util.List; /** * A list of unresolved roles. * *

Revisions: *

20020313 Adrian Brock: *

* * @author Adrian Brock * @version $Revision: 57200 $ */ public class RoleUnresolvedList extends ArrayList { // Attributes ---------------------------------------------------- // Static -------------------------------------------------------- // Constructors -------------------------------------------------- /** * Construct an empty RoleUnresolvedList. */ public RoleUnresolvedList() { super(); } /** * Construct a RoleUnresolvedList with an initial capacity. * * @param initialCapacity the initial capacity. */ public RoleUnresolvedList(int initialCapacity) { super(initialCapacity); } /** * Construct a RoleUnresolvedList from a list. It must be an ArrayList. * The order of the list is maintained. * * @param list the list to copy from. * @exception IllegalArgumentException for a null list or * an list element that is not a role unresolved. */ public RoleUnresolvedList(List list) throws IllegalArgumentException { super(); if (list == null) throw new IllegalArgumentException("Null list"); Iterator iterator = new ArrayList(list).iterator(); while (iterator.hasNext()) { try { add((RoleUnresolved) iterator.next()); } catch (ClassCastException cce) { throw new IllegalArgumentException("List element is not an unresolved role."); } } } // Public --------------------------------------------------------- /** * Appends a unresolved role to the end of the list. * * @param roleUnresolved the new unresolved role. * @exception IllegalArgumentException if the unresolved role is null */ public void add(RoleUnresolved roleUnresolved) throws IllegalArgumentException { if (roleUnresolved == null) throw new IllegalArgumentException("Null unresolved role"); super.add(roleUnresolved); } /** * Adds an unresolved role at the specified location in the list. * * @param index the location at which to insert the unresolved role. * @param roleUnresolved the new unresolved role. * @exception IllegalArgumentException if the unresolved role is null * @exception IndexOutOfBoundsException if there is no such index * in the list */ public void add(int index, RoleUnresolved roleUnresolved) throws IllegalArgumentException, IndexOutOfBoundsException { if (roleUnresolved == null) throw new IllegalArgumentException("Null unresolved role"); super.add(index, roleUnresolved); } /** * Appends an unresolved role list to the end of the list. * * @param roleUnresolvedList the unresolved role list to append (can be null). * @return true if the list changes, false otherwise * @exception IndexOutOfBoundsException if there is no such index * in the list */ public boolean addAll(RoleUnresolvedList roleUnresolvedList) throws IndexOutOfBoundsException { if (roleUnresolvedList == null) return false; return super.addAll(roleUnresolvedList); } /** * Inserts an unresolved role list at the specified location in the list. * * @param index the location at which to insert the unresolved role list. * @param roleUnresolvedList the unresolved role list to insert. * @return true if the list changes, false otherwise * @exception IllegalArgumentException if the unresolved role list is null * @exception IndexOutOfBoundsException if there is no such index * in the list */ public boolean addAll(int index, RoleUnresolvedList roleUnresolvedList) throws IllegalArgumentException, IndexOutOfBoundsException { if (roleUnresolvedList == null) throw new IllegalArgumentException("null roleUnresolvedList"); return super.addAll(index, roleUnresolvedList); } /** * Sets an unresolved role at the specified location in the list. * * @param index the location of the unresolved role to replace. * @param roleUnresolved the new unresolved role. * @exception IllegalArgumentException if the unresolved role is null * @exception IndexOutOfBoundsException if there is no such index * in the list */ public void set(int index, RoleUnresolved roleUnresolved) throws IllegalArgumentException, IndexOutOfBoundsException { if (roleUnresolved == null) throw new IllegalArgumentException("Null unresolved role"); super.set(index, roleUnresolved); } // Array List Overrides ------------------------------------------- // NONE! I think there was supposed to be? // Object Overrides ----------------------------------------------- /** * Cloning. * * REVIEW: The spec says to return a RoleList, that's not very much * of a clone is it? It must be a typo in the RI. * * @return the new unresolved role list with the same unresolved roles. */ public Object clone() { return super.clone(); } }