--- old/src/share/classes/sun/awt/EventListenerAggregate.java 2014-03-18 19:41:34.000000000 +0400
+++ /dev/null 2014-03-18 19:41:34.000000000 +0400
@@ -1,175 +0,0 @@
-/*
- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code 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 General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.awt;
-
-import java.lang.reflect.Array;
-import java.util.EventListener;
-
-
-/**
- * A class that assists in managing {@link java.util.EventListener}s of
- * the specified type. Its instance holds an array of listeners of the same
- * type and allows to perform the typical operations on the listeners.
- * This class is thread-safe.
- *
- * @author Alexander Gerasimov
- *
- * @since 1.5
- */
-public class EventListenerAggregate {
-
- private EventListener[] listenerList;
-
- /**
- * Constructs an EventListenerAggregate
object.
- *
- * @param listenerClass the type of the listeners to be managed by this object
- *
- * @throws NullPointerException if listenerClass
is
- * null
- * @throws ClassCastException if listenerClass
is not
- * assignable to java.util.EventListener
- */
- public EventListenerAggregate(Class extends EventListener> listenerClass) {
- if (listenerClass == null) {
- throw new NullPointerException("listener class is null");
- }
-
- listenerList = (EventListener[])Array.newInstance(listenerClass, 0);
- }
-
- private Class> getListenerClass() {
- return listenerList.getClass().getComponentType();
- }
-
- /**
- * Adds the listener to this aggregate.
- *
- * @param listener the listener to be added
- *
- * @throws ClassCastException if listener
is not
- * an instatce of listenerClass
specified
- * in the constructor
- */
- public synchronized void add(EventListener listener) {
- Class> listenerClass = getListenerClass();
-
- if (!listenerClass.isInstance(listener)) { // null is not an instance of any class
- throw new ClassCastException("listener " + listener + " is not " +
- "an instance of listener class " + listenerClass);
- }
-
- EventListener[] tmp = (EventListener[])Array.newInstance(listenerClass, listenerList.length + 1);
- System.arraycopy(listenerList, 0, tmp, 0, listenerList.length);
- tmp[listenerList.length] = listener;
- listenerList = tmp;
- }
-
- /**
- * Removes a listener that is equal to the given one from this aggregate.
- * equals()
method is used to compare listeners.
- *
- * @param listener the listener to be removed
- *
- * @return true
if this aggregate contained the specified
- * listener
; false
otherwise
- *
- * @throws ClassCastException if listener
is not
- * an instatce of listenerClass
specified
- * in the constructor
- */
- public synchronized boolean remove(EventListener listener) {
- Class> listenerClass = getListenerClass();
-
- if (!listenerClass.isInstance(listener)) { // null is not an instance of any class
- throw new ClassCastException("listener " + listener + " is not " +
- "an instance of listener class " + listenerClass);
- }
-
- for (int i = 0; i < listenerList.length; i++) {
- if (listenerList[i].equals(listener)) {
- EventListener[] tmp = (EventListener[])Array.newInstance(listenerClass,
- listenerList.length - 1);
- System.arraycopy(listenerList, 0, tmp, 0, i);
- System.arraycopy(listenerList, i + 1, tmp, i, listenerList.length - i - 1);
- listenerList = tmp;
-
- return true;
- }
- }
-
- return false;
- }
-
- /**
- * Returns an array of all the listeners contained in this aggregate.
- * The array is the data structure in which listeners are stored internally.
- * The runtime type of the returned array is "array of listenerClass
"
- * (listenerClass
has been specified as a parameter to
- * the constructor of this class).
- *
- * @return all the listeners contained in this aggregate (an empty
- * array if there are no listeners)
- */
- public synchronized EventListener[] getListenersInternal() {
- return listenerList;
- }
-
- /**
- * Returns an array of all the listeners contained in this aggregate.
- * The array is a copy of the data structure in which listeners are stored
- * internally.
- * The runtime type of the returned array is "array of listenerClass
"
- * (listenerClass
has been specified as a parameter to
- * the constructor of this class).
- *
- * @return a copy of all the listeners contained in this aggregate (an empty
- * array if there are no listeners)
- */
- public synchronized EventListener[] getListenersCopy() {
- return (listenerList.length == 0) ? listenerList : listenerList.clone();
- }
-
- /**
- * Returns the number of lisetners in this aggregate.
- *
- * @return the number of lisetners in this aggregate
- */
- public synchronized int size() {
- return listenerList.length;
- }
-
- /**
- * Returns true
if this aggregate contains no listeners,
- * false
otherwise.
- *
- * @return true
if this aggregate contains no listeners,
- * false
otherwise
- */
- public synchronized boolean isEmpty() {
- return listenerList.length == 0;
- }
-}