1 /* 2 * JacORB - a free Java ORB 3 * 4 * Copyright (C) 1999-2004 Gerald Brose 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Library General Public 8 * License as published by the Free Software Foundation; either 9 * version 2 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Library General Public License for more details. 15 * 16 * You should have received a copy of the GNU Library General Public 17 * License along with this library; if not, write to the Free 18 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 19 * 20 */ 21 22 package org.jacorb.test.notification.queue; 23 24 import java.util.ArrayList; 25 import java.util.Collections; 26 import java.util.List; 27 28 import org.jacorb.notification.interfaces.Message; 29 import org.jacorb.notification.queue.AbstractBoundedEventQueue; 30 import org.jacorb.notification.queue.EventQueueOverflowStrategy; 31 32 class DelegatingOverflowStrategy extends EventQueueOverflowStrategy 33 { 34 private final List removedEvents_; 35 36 private final EventQueueOverflowStrategy delegate_; 37 38 public DelegatingOverflowStrategy(EventQueueOverflowStrategy delegate) 39 { 40 super(); 41 42 delegate_ = delegate; 43 removedEvents_ = new ArrayList(); 44 } 45 46 public Message removeElementFromQueue(AbstractBoundedEventQueue queue) 47 { 48 Message e = delegate_.removeElementFromQueue(queue); 49 50 removedEvents_.add(e); 51 52 return e; 53 } 54 55 public List getRemovedElements() 56 { 57 return Collections.unmodifiableList(removedEvents_); 58 } 59 }