/**
 * The contents of this file are subject to the license and copyright
 * detailed in the LICENSE and NOTICE files at the root of the source
 * tree and available online at
 *
 * http://www.dspace.org/license/
 */
package org.dspace.app.itemupdate;

import java.sql.SQLException;

import org.dspace.content.Bitstream;
import org.dspace.content.Bundle;

/**
 *   BitstreamFilter implementation to filter by bundle name
 *
 */
public class BitstreamFilterByBundleName extends BitstreamFilter {

	protected String bundleName;
	
	public BitstreamFilterByBundleName()
	{
		//empty
	}

	/**
	 *    Filter bitstream based on bundle name found in properties file
	 *    
	 *    @param bitstream
	 *    @throws BitstreamFilterException
	 *    @return whether bitstream is in bundle
	 *    
	 */
	public boolean accept(Bitstream bitstream) 
	throws BitstreamFilterException
	{
		if (bundleName == null)
		{
			bundleName = props.getProperty("bundle");
			if (bundleName == null)
			{
				throw new BitstreamFilterException("Property 'bundle' not found.");
			}			
		}
		
		try
		{
			Bundle[] bundles = bitstream.getBundles();
			for (Bundle b : bundles)
			{
				if (b.getName().equals(bundleName))
				{
					return true;
				}
			}		
		}
		catch(SQLException e)
		{
			throw new BitstreamFilterException(e);
		}
		return false;
	}
	
}
