Clover coverage report -
Coverage timestamp: Thu Jul 5 2007 20:02:32 EDT
file stats: LOC: 77   Methods: 3
NCLOC: 39   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
Listener.java 50% 66.7% 66.7% 63.6%
coverage coverage
 1    /*
 2    * JBoss, Home of Professional Open Source
 3    * Copyright 2005, JBoss Inc., and individual contributors as indicated
 4    * by the @authors tag. See the copyright.txt in the distribution for a
 5    * full listing of individual contributors.
 6    *
 7    * This is free software; you can redistribute it and/or modify it
 8    * under the terms of the GNU Lesser General Public License as
 9    * published by the Free Software Foundation; either version 2.1 of
 10    * the License, or (at your option) any later version.
 11    *
 12    * This software is distributed in the hope that it will be useful,
 13    * but WITHOUT ANY WARRANTY; without even the implied warranty of
 14    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 15    * Lesser General Public License for more details.
 16    *
 17    * You should have received a copy of the GNU Lesser General Public
 18    * License along with this software; if not, write to the Free
 19    * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 20    * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
 21    */
 22   
 23    package org.jboss.cache.pojo.notification;
 24   
 25    import java.util.LinkedList;
 26    import java.util.Queue;
 27   
 28    import net.jcip.annotations.NotThreadSafe;
 29   
 30    import org.jboss.cache.pojo.notification.annotation.Attached;
 31    import org.jboss.cache.pojo.notification.annotation.Detached;
 32    import org.jboss.cache.pojo.notification.annotation.FieldModified;
 33    import org.jboss.cache.pojo.notification.annotation.ListModified;
 34    import org.jboss.cache.pojo.notification.annotation.MapModified;
 35    import org.jboss.cache.pojo.notification.annotation.PojoCacheListener;
 36    import org.jboss.cache.pojo.notification.annotation.SetModified;
 37    import org.jboss.cache.pojo.notification.event.Event;
 38   
 39    // $Id: Listener.java,v 1.3 2007/07/03 01:45:58 jgreene Exp $
 40   
 41    /**
 42    * A recoding Listener for notification test package. This is not thread safe, just for testing.
 43    *
 44    * @author Jason T. Greene
 45    */
 46    @PojoCacheListener
 47    @NotThreadSafe
 48    public class Listener
 49    {
 50    private Queue<Event> events = new LinkedList<Event>();
 51   
 52  165 @SuppressWarnings("unchecked")
 53    public <T extends Event> T take(Class<T> t)
 54    {
 55  165 Event notification = events.remove();
 56  165 if (!t.isInstance(notification))
 57  0 throw new IllegalStateException("Expected notification type: " + t.getSimpleName() + " but was: " + notification.getClass().getSimpleName());
 58   
 59  165 return (T) notification;
 60    }
 61   
 62  0 public void clear()
 63    {
 64  0 events.clear();
 65    }
 66   
 67  165 @Attached
 68    @Detached
 69    @FieldModified
 70    @ListModified
 71    @SetModified
 72    @MapModified
 73    public void handle(Event event)
 74    {
 75  165 events.offer(event);
 76    }
 77    }