src/core/net/sf/basedb/util/extensions/DefaultFilter.java

Code
Comments
Other
Rev Date Author Line
4168 04 Mar 08 nicklas 1 /**
4479 05 Sep 08 jari 2   $Id$
4168 04 Mar 08 nicklas 3
4168 04 Mar 08 nicklas 4   Copyright (C) Authors contributing to this file.
4168 04 Mar 08 nicklas 5
4168 04 Mar 08 nicklas 6   This file is part of BASE - BioArray Software Environment.
4168 04 Mar 08 nicklas 7   Available at http://base.thep.lu.se/
4168 04 Mar 08 nicklas 8
4168 04 Mar 08 nicklas 9   BASE is free software; you can redistribute it and/or
4168 04 Mar 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
4168 04 Mar 08 nicklas 12   of the License, or (at your option) any later version.
4168 04 Mar 08 nicklas 13
4168 04 Mar 08 nicklas 14   BASE is distributed in the hope that it will be useful,
4168 04 Mar 08 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
4168 04 Mar 08 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
4168 04 Mar 08 nicklas 17   GNU General Public License for more details.
4168 04 Mar 08 nicklas 18
4168 04 Mar 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/>.
4168 04 Mar 08 nicklas 21 */
4168 04 Mar 08 nicklas 22 package net.sf.basedb.util.extensions;
4168 04 Mar 08 nicklas 23
4168 04 Mar 08 nicklas 24 import java.util.Collections;
4168 04 Mar 08 nicklas 25 import java.util.Comparator;
4168 04 Mar 08 nicklas 26 import java.util.List;
4168 04 Mar 08 nicklas 27
4168 04 Mar 08 nicklas 28 /**
4168 04 Mar 08 nicklas 29   A default filter implementation that enables all
4168 04 Mar 08 nicklas 30   extensions and extension points and sorts the
4168 04 Mar 08 nicklas 31   extensions based on the {@link Extension#getIndex()}
4168 04 Mar 08 nicklas 32   values.
4168 04 Mar 08 nicklas 33   
4168 04 Mar 08 nicklas 34   @author nicklas
4168 04 Mar 08 nicklas 35   @version 2.7
4198 28 Mar 08 nicklas 36   @base.modified $Date:2008-03-20 12:15:25 +0100 (Thu, 20 Mar 2008) $
4168 04 Mar 08 nicklas 37 */
4168 04 Mar 08 nicklas 38 public class DefaultFilter 
4168 04 Mar 08 nicklas 39   implements ExtensionsFilter 
4168 04 Mar 08 nicklas 40 {
4168 04 Mar 08 nicklas 41
4168 04 Mar 08 nicklas 42   /**
4207 04 Apr 08 nicklas 43     Comparator used to order a list of invokation contexts by 
4207 04 Apr 08 nicklas 44     the index value of the extension.
4168 04 Mar 08 nicklas 45     @see Extension#getIndex()
4198 28 Mar 08 nicklas 46   */
4207 04 Apr 08 nicklas 47   public static final Comparator<InvokationContext<?>> INDEX_COMPARATOR_CTX = 
4207 04 Apr 08 nicklas 48     new Comparator<InvokationContext<?>>()
4207 04 Apr 08 nicklas 49     {
4207 04 Apr 08 nicklas 50       @Override
4207 04 Apr 08 nicklas 51       public int compare(InvokationContext<?> o1, InvokationContext<?> o2) 
4207 04 Apr 08 nicklas 52       {
4207 04 Apr 08 nicklas 53         return Float.compare(o1.getExtension().getIndex(), o2.getExtension().getIndex());
4207 04 Apr 08 nicklas 54       }
4207 04 Apr 08 nicklas 55     };
4207 04 Apr 08 nicklas 56
4207 04 Apr 08 nicklas 57   /**
4207 04 Apr 08 nicklas 58     Comparator used to order a list of extensions by 
4207 04 Apr 08 nicklas 59     the index value of the extension.
4207 04 Apr 08 nicklas 60     @see Extension#getIndex()
4207 04 Apr 08 nicklas 61   */
4207 04 Apr 08 nicklas 62   public static final Comparator<Extension<?>> INDEX_COMPARATOR_EXT = 
4170 07 Mar 08 nicklas 63     new Comparator<Extension<?>>()
4168 04 Mar 08 nicklas 64     {
4168 04 Mar 08 nicklas 65       @Override
4170 07 Mar 08 nicklas 66       public int compare(Extension<?> o1, Extension<?> o2) 
4168 04 Mar 08 nicklas 67       {
4168 04 Mar 08 nicklas 68         return Float.compare(o1.getIndex(), o2.getIndex());
4168 04 Mar 08 nicklas 69       }
4168 04 Mar 08 nicklas 70     };
4207 04 Apr 08 nicklas 71     
4168 04 Mar 08 nicklas 72   /**
4168 04 Mar 08 nicklas 73     Create a new default filter.
4168 04 Mar 08 nicklas 74   */
4168 04 Mar 08 nicklas 75   public DefaultFilter()
4168 04 Mar 08 nicklas 76   {}
4168 04 Mar 08 nicklas 77   
4168 04 Mar 08 nicklas 78   /*
4168 04 Mar 08 nicklas 79     From the ExtensionsFilter interface
4168 04 Mar 08 nicklas 80     -----------------------------------
4168 04 Mar 08 nicklas 81   */
4168 04 Mar 08 nicklas 82   @Override
4170 07 Mar 08 nicklas 83   public boolean isEnabled(ExtensionPoint<?> extensionPoint) 
4168 04 Mar 08 nicklas 84   {
4168 04 Mar 08 nicklas 85     return true;
4168 04 Mar 08 nicklas 86   }
4168 04 Mar 08 nicklas 87
4168 04 Mar 08 nicklas 88   @Override
4170 07 Mar 08 nicklas 89   public boolean isEnabled(Extension<?> extension) 
4168 04 Mar 08 nicklas 90   {
4168 04 Mar 08 nicklas 91     return true;
4168 04 Mar 08 nicklas 92   }
4168 04 Mar 08 nicklas 93
4168 04 Mar 08 nicklas 94   @Override
4207 04 Apr 08 nicklas 95   public void sort(List<? extends InvokationContext<?>> extensions) 
4168 04 Mar 08 nicklas 96   {
4207 04 Apr 08 nicklas 97     Collections.sort(extensions, INDEX_COMPARATOR_CTX);
4168 04 Mar 08 nicklas 98   }
4168 04 Mar 08 nicklas 99   // --------------------------------------------------
4168 04 Mar 08 nicklas 100 }