/** * Adds a Trigger, wrapping it in a WeakReference. * * @param trigger */ void add(final Trigger trigger) { // this is the object to add to list Object o = (trigger.isPersistent()) ? trigger : (Object) new WeakReference /*<Trigger>*/(trigger); // Add a Trigger in the correct group of phases in the list for (ListIterator /*<Object>*/ it = listIterator(); it.hasNext();) { Trigger t = convert(it.next()); if (t == null) { it.remove(); } else if (trigger.phase() < t.phase()) { // add it before it.hasPrevious(); it.add(o); return; } else if (trigger.phase() == t.phase()) { // add it after it.add(o); return; } } super.add(o); }