/*
 * @(#)FilenameFilterRule.java
 */
package ereinion.io;

import ereinion.util.FilterRule;
import java.io.FilenameFilter;
import java.io.File;

/**
 * Questa classe converte un FilenameFilter in un FilterRule basata sulla stessa
 * strategia di filtraggio.
 *
 * @author  Ereinion
 * @version 1.0, 25/09/2002
 * @since EPR 1.0
 */
public class FilenameFilterRule implements FilterRule
{

	/**
     * Crea un nuovo filtro che accetta solo l' estensione impostata.
     *
     * @param f il FilenameFilter di cui usare la strategia.
     */
	public FilenameFilterRule(FilenameFilter f) { filter = f; }


	/* implementazione di FilterRule */

	/**
     * Accetta un file se rispetta la regola FilenameFilter impostata.
     *
     * @param elem deve essere un file.
     */
	public boolean accept(Object elem)
	{
		File file = (File)elem;
		File parent = file.getParentFile();
		String name = file.getName();
		return filter.accept(parent,name);
	}

 	/* campi privati */

	private FilenameFilter filter;

}
