/** * Passes back the event listener list as an array * of ListenerType-listener pairs. * As a side-effect, cleans out any * garbage collected listeners before building the array. * * @return a array of listenerType-listener pairs. */ public Object[] getListenerList() { List<? extends EventListener> listeners = cleanReferences(); Object[] result = new Object[listeners.size() * 2]; for (int i = 0; i < listeners.size(); i++) { result[2*i + 1] = listeners.get(i); result[2*i] = getClasses().get(i); } return result; }
/** * Passes back the event listener list as an array * of ListenerType-listener pairs. * As a side-effect, cleans out any * garbage collected listeners before building the array. * * @return a array of listenerType-listener pairs. */ public Object[] getListenerList() { List<? extends EventListener> listeners = cleanReferences(); Object[] result = new Object[listeners.size() * 2]; for (int i = 0; i < listeners.size(); i++) { result[2*i + 1] = listeners.get(i); result[2*i] = getClasses().get(i); } return result; }
/** * Passes back the event listener list as an array * of ListenerType-listener pairs. * As a side-effect, cleans out any * garbage collected listeners before building the array. * * @return a array of listenerType-listener pairs. */ public Object[] getListenerList() { List<? extends EventListener> listeners = cleanReferences(); Object[] result = new Object[listeners.size() * 2]; for (int i = 0; i < listeners.size(); i++) { result[2*i + 1] = listeners.get(i); result[2*i] = getClasses().get(i); } return result; }
/** * Passes back the event listener list as an array * of ListenerType-listener pairs. * As a side-effect, cleans out any * garbage collected listeners before building the array. * * @return a array of listenerType-listener pairs. */ public Object[] getListenerList() { List<? extends EventListener> listeners = cleanReferences(); Object[] result = new Object[listeners.size() * 2]; for (int i = 0; i < listeners.size(); i++) { result[2*i + 1] = listeners.get(i); result[2*i] = getClasses().get(i); } return result; }
/** * Passes back the event listener list as an array * of ListenerType-listener pairs. * As a side-effect, cleans out any * garbage collected listeners before building the array. * * @return a array of listenerType-listener pairs. */ public Object[] getListenerList() { List<? extends EventListener> listeners = cleanReferences(); Object[] result = new Object[listeners.size() * 2]; for (int i = 0; i < listeners.size(); i++) { result[2*i + 1] = listeners.get(i); result[2*i] = getClasses().get(i); } return result; }
/** * Return an array of all the listeners of the given type. * As a side-effect, cleans out any * garbage collected listeners before building the array. * @return all of the listeners of the specified type. * @exception ClassCastException if the supplied class * is not assignable to EventListener * * @since 1.3 */ @SuppressWarnings("unchecked") public <T extends EventListener> T[] getListeners(Class<T> t) { List<T> liveListeners = cleanReferences(); List<T> listeners = new ArrayList<T>(); for (int i = 0; i < liveListeners.size(); i++) { if (getClasses().get(i) == t) { listeners.add(liveListeners.get(i)); } } T[] result = (T[])Array.newInstance(t, listeners.size()); return listeners.toArray(result); }
/** * Return an array of all the listeners of the given type. * As a side-effect, cleans out any * garbage collected listeners before building the array. * @return all of the listeners of the specified type. * @exception ClassCastException if the supplied class * is not assignable to EventListener * * @since 1.3 */ @SuppressWarnings("unchecked") public <T extends EventListener> T[] getListeners(Class<T> t) { List<T> liveListeners = cleanReferences(); List<T> listeners = new ArrayList<T>(); for (int i = 0; i < liveListeners.size(); i++) { if (getClasses().get(i) == t) { listeners.add(liveListeners.get(i)); } } T[] result = (T[])Array.newInstance(t, listeners.size()); return listeners.toArray(result); }
/** * Return an array of all the listeners of the given type. * As a side-effect, cleans out any * garbage collected listeners before building the array. * @return all of the listeners of the specified type. * @exception ClassCastException if the supplied class * is not assignable to EventListener * * @since 1.3 */ @SuppressWarnings("unchecked") public <T extends EventListener> T[] getListeners(Class<T> t) { List<T> liveListeners = cleanReferences(); List<T> listeners = new ArrayList<T>(); for (int i = 0; i < liveListeners.size(); i++) { if (getClasses().get(i) == t) { listeners.add(liveListeners.get(i)); } } T[] result = (T[])Array.newInstance(t, listeners.size()); return listeners.toArray(result); }
/** * Return an array of all the listeners of the given type. * As a side-effect, cleans out any * garbage collected listeners before building the array. * @return all of the listeners of the specified type. * @exception ClassCastException if the supplied class * is not assignable to EventListener * * @since 1.3 */ @SuppressWarnings("unchecked") public <T extends EventListener> T[] getListeners(Class<T> t) { List<T> liveListeners = cleanReferences(); List<T> listeners = new ArrayList<T>(); for (int i = 0; i < liveListeners.size(); i++) { if (getClasses().get(i) == t) { listeners.add(liveListeners.get(i)); } } T[] result = (T[])Array.newInstance(t, listeners.size()); return listeners.toArray(result); }
/** * Return an array of all the listeners of the given type. * As a side-effect, cleans out any * garbage collected listeners before building the array. * @return all of the listeners of the specified type. * @exception ClassCastException if the supplied class * is not assignable to EventListener * * @since 1.3 */ @SuppressWarnings("unchecked") public <T extends EventListener> T[] getListeners(Class<T> t) { List<T> liveListeners = cleanReferences(); List<T> listeners = new ArrayList<T>(); for (int i = 0; i < liveListeners.size(); i++) { if (getClasses().get(i) == t) { listeners.add(liveListeners.get(i)); } } T[] result = (T[])Array.newInstance(t, listeners.size()); return listeners.toArray(result); }
/** * Adds the listener as a listener of the specified type. * As a side-effect, cleans out any garbage collected * listeners before adding. * @param t the type of the listener to be added * @param l the listener to be added */ public synchronized <T extends EventListener> void add(Class<T> t, T l) { if (l==null) { // In an ideal world, we would do an assertion here // to help developers know they are probably doing // something wrong return; } if (!t.isInstance(l)) { throw new IllegalArgumentException("Listener " + l + " is not of type " + t); } cleanReferences(); getReferences().add(new WeakReference<T>(l)); getClasses().add(t); }
/** * Adds the listener as a listener of the specified type. * As a side-effect, cleans out any garbage collected * listeners before adding. * @param t the type of the listener to be added * @param l the listener to be added */ public synchronized <T extends EventListener> void add(Class<T> t, T l) { if (l==null) { // In an ideal world, we would do an assertion here // to help developers know they are probably doing // something wrong return; } if (!t.isInstance(l)) { throw new IllegalArgumentException("Listener " + l + " is not of type " + t); } cleanReferences(); getReferences().add(new WeakReference<T>(l)); getClasses().add(t); }
/** * Adds the listener as a listener of the specified type. * As a side-effect, cleans out any garbage collected * listeners before adding. * @param t the type of the listener to be added * @param l the listener to be added */ public synchronized <T extends EventListener> void add(Class<T> t, T l) { if (l==null) { // In an ideal world, we would do an assertion here // to help developers know they are probably doing // something wrong return; } if (!t.isInstance(l)) { throw new IllegalArgumentException("Listener " + l + " is not of type " + t); } cleanReferences(); getReferences().add(new WeakReference<T>(l)); getClasses().add(t); }
/** * Adds the listener as a listener of the specified type. * As a side-effect, cleans out any garbage collected * listeners before adding. * @param t the type of the listener to be added * @param l the listener to be added */ public synchronized <T extends EventListener> void add(Class<T> t, T l) { if (l==null) { // In an ideal world, we would do an assertion here // to help developers know they are probably doing // something wrong return; } if (!t.isInstance(l)) { throw new IllegalArgumentException("Listener " + l + " is not of type " + t); } cleanReferences(); getReferences().add(new WeakReference<T>(l)); getClasses().add(t); }
/** * Adds the listener as a listener of the specified type. * As a side-effect, cleans out any garbage collected * listeners before adding. * @param t the type of the listener to be added * @param l the listener to be added */ public synchronized <T extends EventListener> void add(Class<T> t, T l) { if (l==null) { // In an ideal world, we would do an assertion here // to help developers know they are probably doing // something wrong return; } if (!t.isInstance(l)) { throw new IllegalArgumentException("Listener " + l + " is not of type " + t); } cleanReferences(); getReferences().add(new WeakReference<T>(l)); getClasses().add(t); }
/** * Returns a list of strongly referenced EventListeners. Removes * internal weak references to garbage collected listeners. * * @return */ @SuppressWarnings("unchecked") private synchronized <T extends EventListener> List<T> cleanReferences() { List<T> listeners = new ArrayList<T>(); for (int i = getReferences().size() - 1; i >= 0; i--) { Object listener = getReferences().get(i).get(); if (listener == null) { getReferences().remove(i); getClasses().remove(i); } else { listeners.add(0, (T) listener); } } return listeners; }
/** * Returns a list of strongly referenced EventListeners. Removes * internal weak references to garbage collected listeners. * * @return */ @SuppressWarnings("unchecked") private synchronized <T extends EventListener> List<T> cleanReferences() { List<T> listeners = new ArrayList<T>(); for (int i = getReferences().size() - 1; i >= 0; i--) { Object listener = getReferences().get(i).get(); if (listener == null) { getReferences().remove(i); getClasses().remove(i); } else { listeners.add(0, (T) listener); } } return listeners; }
/** * Returns a list of strongly referenced EventListeners. Removes * internal weak references to garbage collected listeners. * * @return */ @SuppressWarnings("unchecked") private synchronized <T extends EventListener> List<T> cleanReferences() { List<T> listeners = new ArrayList<T>(); for (int i = getReferences().size() - 1; i >= 0; i--) { Object listener = getReferences().get(i).get(); if (listener == null) { getReferences().remove(i); getClasses().remove(i); } else { listeners.add(0, (T) listener); } } return listeners; }
/** * Returns a list of strongly referenced EventListeners. Removes * internal weak references to garbage collected listeners. * * @return */ @SuppressWarnings("unchecked") private synchronized <T extends EventListener> List<T> cleanReferences() { List<T> listeners = new ArrayList<T>(); for (int i = getReferences().size() - 1; i >= 0; i--) { Object listener = getReferences().get(i).get(); if (listener == null) { getReferences().remove(i); getClasses().remove(i); } else { listeners.add(0, (T) listener); } } return listeners; }
/** * Returns a list of strongly referenced EventListeners. Removes * internal weak references to garbage collected listeners. * * @return */ @SuppressWarnings("unchecked") private synchronized <T extends EventListener> List<T> cleanReferences() { List<T> listeners = new ArrayList<T>(); for (int i = getReferences().size() - 1; i >= 0; i--) { Object listener = getReferences().get(i).get(); if (listener == null) { getReferences().remove(i); getClasses().remove(i); } else { listeners.add(0, (T) listener); } } return listeners; }