FileDocCategorySizeDatePackage
CustomerDataAccesstExport.javaAPI DocExample2370Thu Oct 13 14:56:38 BST 2005com.samscdrental.importexport

CustomerDataAccesstExport

public class CustomerDataAccesstExport extends Object

Title: Sams CD Rental Store

Description:

Copyright: Copyright (c) 2004

Company:

author
Ken Pugh
version
1.0

Fields Summary
private CustomerDataAccess
theCustomerCollection
private static final String
ERROR_OPENING_CUSTOMER_FILE
private static final String
ERROR_CLOSING_CUSTOMER_FILE
private static final String
ERROR_READING_CUSTOMER_FILE
Constructors Summary
public CustomerDataAccesstExport(CustomerDataAccess aCustomerStateCollection)

		theCustomerCollection = aCustomerStateCollection;
	
Methods Summary
public voidaddCustomersFromFile(java.lang.String filename)

		BufferedReader in = null;
		FileReader aFileReader = null;
		StringBuffer errorString = new StringBuffer();
		boolean errorOccurred = false;

		try
		{
			aFileReader = new FileReader( filename );
			in = new BufferedReader( aFileReader );
		}
		catch ( FileNotFoundException exception )
		{
			throw new ImportFileDeviation(
				ERROR_OPENING_CUSTOMER_FILE + filename, exception );
		}
		try
		{
			String line = null;
			// Keep reading till the end of the file
			while ( ( line = in.readLine() ) != null )
			{
				if ( line.length() > 0 )
				{
					try
					{
						Customer aCustomer =
							CustomerImportExport.parseLine( line );
						theCustomerCollection.add( aCustomer );

					}
					catch ( ParseLineDeviation e )
					{
						errorString.append( e.getMessage() );
						errorOccurred = true;

					}
				}
			}
		}

		catch ( IOException exception )
		{
			throw new ImportFileDeviation( ERROR_READING_CUSTOMER_FILE +
										   filename, exception );
		}
		finally
		{
			try
			{
				in.close();
			}
			catch ( IOException exception )
			{
				throw new SeriousErrorException(
					ERROR_CLOSING_CUSTOMER_FILE +
					filename, exception );
			}
		}
		if ( errorOccurred )
		{
			throw new ImportFormatDeviation( errorString.toString() );
		}
		return;