Swing JFC Java

/*
 * $Id: SuffixFilenameFilter.java,v 1.1.1.1 2005/04/07 18:36:22 pocho Exp $
 */
import java.io.File;
import java.io.FilenameFilter;
import javax.swing.filechooser.FileFilter;
/**
 * Files filter that filters files by their suffix (or extension).
 * It can be used as file filter for {@link javax.swing.JFileChooser} or
 * as file filter for io operations (@link java.io.File#listFiles(java.io.FilenameFilter)}.
 * 
 * @version $Name:  $ - $Revision: 1.1.1.1 $ - $Date: 2005/04/07 18:36:22 $
 * TODO Test
 */
public class SuffixFilenameFilter extends FileFilter implements FilenameFilter {
  
  /** Suffix of files */
  private String suffix;
  
  /** Description of suffix (i.e. .jpg may have description JPG)*/
  private String description;
  
  /** Full description of filter - (i.e. JPG (.jpg) */
  private String fullDescription;
  
  /** Indicates whether to use suffix in brackets after description */
  private boolean useExtensionInDescription = true;
  /**
   * Creates new instance with a given accepted suffix of file names.
   *
   * @param suffix used suffix of files (i.e. extension ".xml")
   */
  public SuffixFilenameFilter(String suffix) {
    this(suffix, null);
  }
  /**
   * Creates new instance with a given accepted suffix of file names.
   *
   * @param suffix used suffix of files (i.e. extension ".xml")
   */
  public SuffixFilenameFilter(String suffix, String description) {
    super();
    setSuffix(suffix);
    setDescription(description);
  }
  /**
   * Indicates whether the name is accepted by this filter or not.
   * File must ending with given mask of this filter.
   *
   * @param dir File
   * @param name String
   * @return boolean
   */
  public boolean accept(File dir, String name){
  if (name.lastIndexOf(suffix) > 0)
      return true;
    else
      return false;
  }
  public boolean accept(File file) {
    if (file != null) {
      if (file.isDirectory() || accept(file.getParentFile(), file.getName()))
          return true;
    }
    return false;
  }
  /**
   * Returns description of this filter - if {@link #isExtensionInDescription()}
   * is true then it creates description in following shape:

   * description (suffix). Otherwise it only returns description.
   * 
   * @see javax.swing.filechooser.FileFilter#getDescription()
   */
  public String getDescription() {
    if (fullDescription == null && isExtensionInDescription()) {
        fullDescription = description==null ? "(" : description + " (";
        fullDescription += suffix + ")";
    }
    return fullDescription;
  }
  /**
   * Sets whether to use suffix in description of this filter.
   * 
   * @param b
   */
  public void setExtensionInDescription(boolean b) {
    useExtensionInDescription = b;
    fullDescription = null;
  }
  public boolean isExtensionInDescription() {
    return useExtensionInDescription;
  }
  public void setSuffix(String suffix) {
    this.suffix = suffix;
    fullDescription = null;
  }
  public void setDescription(String description) {
    this.description = description;
    fullDescription = null;
  }
  
  public String getExtension() {
    return suffix;
  }
  
  public String getSimpleDescription() {
    return description;
  }
}