src/core/net/sf/basedb/util/extensions/events/ActionClassEventFilter.java

Code
Comments
Other
Rev Date Author Line
4320 29 May 08 nicklas 1 /**
4320 29 May 08 nicklas 2   $Id$
4320 29 May 08 nicklas 3
4320 29 May 08 nicklas 4   Copyright (C) 2008 Nicklas Nordborg
4320 29 May 08 nicklas 5
4320 29 May 08 nicklas 6   This file is part of BASE - BioArray Software Environment.
4320 29 May 08 nicklas 7   Available at http://base.thep.lu.se/
4320 29 May 08 nicklas 8
4320 29 May 08 nicklas 9   BASE is free software; you can redistribute it and/or
4320 29 May 08 nicklas 10   modify it under the terms of the GNU General Public License
4479 05 Sep 08 jari 11   as published by the Free Software Foundation; either version 3
4320 29 May 08 nicklas 12   of the License, or (at your option) any later version.
4320 29 May 08 nicklas 13
4320 29 May 08 nicklas 14   BASE is distributed in the hope that it will be useful,
4320 29 May 08 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
4320 29 May 08 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
4320 29 May 08 nicklas 17   GNU General Public License for more details.
4320 29 May 08 nicklas 18
4320 29 May 08 nicklas 19   You should have received a copy of the GNU General Public License
4515 11 Sep 08 jari 20   along with BASE. If not, see <http://www.gnu.org/licenses/>.
4320 29 May 08 nicklas 21 */
4320 29 May 08 nicklas 22 package net.sf.basedb.util.extensions.events;
4320 29 May 08 nicklas 23
4320 29 May 08 nicklas 24 import net.sf.basedb.util.extensions.Action;
4320 29 May 08 nicklas 25 import net.sf.basedb.util.extensions.Extension;
4320 29 May 08 nicklas 26 import net.sf.basedb.util.extensions.ExtensionPoint;
4320 29 May 08 nicklas 27
4320 29 May 08 nicklas 28 /**
4320 29 May 08 nicklas 29   Event filter that only passes on events to extension points with a
4320 29 May 08 nicklas 30   given action class.
4320 29 May 08 nicklas 31
4320 29 May 08 nicklas 32   @author nicklas
4320 29 May 08 nicklas 33   @version 2.8
4320 29 May 08 nicklas 34   @base.modified $Date$
4320 29 May 08 nicklas 35  */
4320 29 May 08 nicklas 36 public class ActionClassEventFilter
4320 29 May 08 nicklas 37   implements EventFilter
4320 29 May 08 nicklas 38 {
4320 29 May 08 nicklas 39
4320 29 May 08 nicklas 40   private final Class<? extends Action> clazz;
4320 29 May 08 nicklas 41   /**
4320 29 May 08 nicklas 42     Create a new action class filter. This filter will pass events
4320 29 May 08 nicklas 43     for extension points where the class returned by 
4320 29 May 08 nicklas 44     {@link ExtensionPoint#getActionClass()} is the same class or a subclass
4320 29 May 08 nicklas 45     to the class given in this constructor.
4320 29 May 08 nicklas 46     @param clazz The class
4320 29 May 08 nicklas 47   */
4320 29 May 08 nicklas 48   public ActionClassEventFilter(Class<? extends Action> clazz)
4320 29 May 08 nicklas 49   {
4320 29 May 08 nicklas 50     this.clazz = clazz;
4320 29 May 08 nicklas 51   }
4320 29 May 08 nicklas 52   
4320 29 May 08 nicklas 53   /**
4320 29 May 08 nicklas 54     @return TRUE if the {@link ExtensionPoint#getActionClass()} is the
4320 29 May 08 nicklas 55       same class or a subclass of the class given in the constructor
4320 29 May 08 nicklas 56    */
4320 29 May 08 nicklas 57   @Override
4320 29 May 08 nicklas 58   public boolean shouldSend(EventType event, ExtensionPoint<?> extensionPoint,
4320 29 May 08 nicklas 59       Extension<?> extension)
4320 29 May 08 nicklas 60   {
4320 29 May 08 nicklas 61     return clazz.isAssignableFrom(extensionPoint.getActionClass());
4320 29 May 08 nicklas 62   }
4320 29 May 08 nicklas 63
4320 29 May 08 nicklas 64 }