NXvalidate  1
 All Classes Namespaces Files Functions Variables
ExtensionFilter.java
Go to the documentation of this file.
1 /* NeXus - Neutron & X-ray Common Data Format
2  *
3  * NeXus file validation GUI tool.
4  *
5  * Copyright (C) 2010 Nexus Team
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2 of the License, or (at your option) any later version.
11  *
12  * This library 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 library; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20  *
21  * For further information, see <http://www.nexusformat.org/>
22  *
23  * ExtensionFilter.java
24  *
25  */
26 package org.nexusformat.nxvalidate.filter;
27 
28 import java.io.File;
29 import java.io.FileFilter;
30 
31 public class ExtensionFilter extends javax.swing.filechooser.FileFilter
32  implements FileFilter {
33  private String extension;
34  private boolean withDirectories;
35 
36  ExtensionFilter(final String extension) {
37  this(extension, true);
38  }
39 
40  ExtensionFilter(final String extension, final boolean withDirectories) {
41  if (extension == null) {
42  throw new Error("Cannot filter null extension");
43  }
44  if (extension.length() <= 0) {
45  throw new Error("Cannot filter empty extension");
46  }
47  this.extension = extension;
48  this.withDirectories = withDirectories;
49  }
50 
52  public final boolean accept(File pathname) {
53  if (pathname.isDirectory()) {
54  return this.withDirectories;
55  }
56  return (pathname.getName().endsWith(this.extension));
57  }
58 
59  @Override
60  public String getDescription() {
61  return "*" + this.extension;
62  }
63 }