import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;

public class Presidents
{
    private ArrayList<Name> names = new ArrayList<Name>();
    
    public void readFile(Scanner in)
    {
        while (in.hasNextLine()) {
            names.add(new Name(in.nextLine().trim()));
        }
    }
    
    public void printNames()
    {
        for (Name name : names) System.out.println(name);
    }
    
    public void sortNames()
    {
        NameSorter.sort(names);
    }
    
    private static final String FILE_NAME = "presidents.txt";
    
    public static void main(String args[])
    {
        Scanner in = null;
        
        try {
            in = new Scanner(new File(FILE_NAME));
            
            Presidents prez = new Presidents();
            prez.readFile(in);
            
            System.out.println("Original list:\n");
            prez.printNames();
            
            prez.sortNames();
            
            System.out.println("\nSorted list:\n");
            prez.printNames();
        }
        catch (FileNotFoundException ex) {
            System.out.printf("*** File not found: %s\n", FILE_NAME);
        }
        finally {
            if (in != null) in.close();
        }
    }
}
