Coverage Report - net.mtu.eggplant.util.BasicFileFilter
 
Classes in this File Line Coverage Branch Coverage Complexity
BasicFileFilter
0%
0/17
0%
0/6
2.25
 
 1  
 /*
 2  
  * Copyright (c) 2000
 3  
  *      Jon Schewe.  All rights reserved
 4  
  *
 5  
  * Redistribution and use in source and binary forms, with or without
 6  
  * modification, are permitted provided that the following conditions
 7  
  * are met:
 8  
  * 1. Redistributions of source code must retain the above copyright
 9  
  *    notice, this list of conditions and the following disclaimer.
 10  
  * 2. Redistributions in binary form must reproduce the above copyright
 11  
  *    notice, this list of conditions and the following disclaimer in the
 12  
  *    documentation and/or other materials provided with the distribution.
 13  
  *
 14  
  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 15  
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 16  
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 17  
  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 18  
  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 19  
  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 20  
  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 21  
  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 22  
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 23  
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 24  
  * SUCH DAMAGE.
 25  
  *
 26  
  * I'd appreciate comments/suggestions on the code jpschewe@mtu.net
 27  
  */
 28  
 package net.mtu.eggplant.util;
 29  
 
 30  
 import java.io.File;
 31  
 import java.util.Arrays;
 32  
 
 33  
 import javax.swing.filechooser.FileFilter;
 34  
 
 35  
 /**
 36  
  * This class makes it easy to accept files by extension.
 37  
  * 
 38  
  * @version $Revision$
 39  
  */
 40  
 public class BasicFileFilter extends FileFilter {
 41  
 
 42  
   /**
 43  
    * Create a Filter filter with description and allowing files with extensions
 44  
    * in the list extensions.
 45  
    * 
 46  
    * @param description
 47  
    *          the description of this filter
 48  
    * @param extensions
 49  
    *          the extensions to allow
 50  
    * 
 51  
    * @pre (description != null)
 52  
    * @pre (extensions != null)
 53  
    */
 54  
   public BasicFileFilter(final String description,
 55  0
                          final String[] extensions) {
 56  0
     _description = description;
 57  0
     _extensions = Arrays.copyOf(extensions, extensions.length);
 58  0
   }
 59  
 
 60  
   /**
 61  
    * Create a Filter filter with description and allowing files with extensions
 62  
    * equal to extension as well as directories (for traversal).
 63  
    * 
 64  
    * @param description
 65  
    *          the description of this filter
 66  
    * @param extension
 67  
    *          the extension to allow
 68  
    * 
 69  
    * @pre (description != null)
 70  
    * @pre (extension != null)
 71  
    */
 72  
   public BasicFileFilter(final String description,
 73  0
                          final String extension) {
 74  0
     _description = description;
 75  0
     _extensions = new String[1];
 76  0
     _extensions[0] = extension;
 77  0
   }
 78  
 
 79  
   private String _description;
 80  
 
 81  
   private String[] _extensions;
 82  
 
 83  
   public boolean accept(final File f) {
 84  
     // accept directories, otherwise can't browse into directories
 85  0
     if (f.isDirectory()) {
 86  0
       return true;
 87  
     }
 88  
 
 89  0
     final String filename = f.getName();
 90  0
     for (int i = 0; i < _extensions.length; i++) {
 91  0
       if (filename.endsWith('.' + _extensions[i])) {
 92  0
         return true;
 93  
       }
 94  
     }
 95  0
     return false;
 96  
   }
 97  
 
 98  
   public String getDescription() {
 99  0
     return _description;
 100  
   }
 101  
 
 102  
 }