import java.util.Scanner;
public class SpamFilterDriver
{
private static SpamFilter filter;
private static final String FILENAME = "SpamFilter.obj";
private static final float SPAM_RATIO = (float) 0.05;
static Scanner input = new Scanner(System.in);
/**
* Main method. It calls the menu() method to obtain the user's selection
* and then makes a decison based upon the user's selection.
* @param args
* Standard main method parameter, unused.
*/
public static void main(String[] args)
{
boolean loop = true;
while(loop)
{
char selection = menu();
switch(selection)
{
case 'C':
checkEmail();
break;
case 'I':
insertWord();
break;
case 'R':
removeWord();
break;
case 'S':
searchWord();
break;
case 'Q':
loop = false;
break;
default:
System.out.println("Invalid Selection!\n\n");
break;
}
}
}
/**
* Prints a menu and asks for a user's selection
* @return
* returns the user's selection.
*/
private static char menu()
{
System.out.print("Welcome to the Spaminator\nPlease select an option:\n\n" +
"C: Check Email\nI: Insert Word\nR: Remove Word\nS: Search For Word\n" +
"Q: Quit\n\nSelection:");
String temp = input.nextLine().trim();
if (temp.length() == 1)
{
char answer = temp.charAt(0);
answer = Character.toUpperCase(answer);
return answer;
}
else return 'z'; // arbitrary invalid selection
}
/**
* Searches for a specified word in the hash table and prints a message
* that lets the user know if the word is or is not in the table.
*/
private static void searchWord()
{
System.out.print("Word to find: ");
String checkMe = input.nextLine();
boolean isFound = filter.isBadWord(checkMe);
if(isFound)
System.out.println(checkMe + " is a bad word");
else
System.out.println(checkMe + "was not found in the list of bad words");
}
/**
* Removes a word from the hash table. If the element to be removed is not
* found, it prints an error message instead.
*/
private static void removeWord()
{
System.out.print("Word to remove: ");
String removeMe = input.nextLine();
try
{
filter.remove(removeMe);
System.out.println(removeMe + " was successfully rmoved from the list" +
" of bad words.");
}
catch (ElementNotFoundException e)
{
System.out.println(e.getMessage());
}
}
/**
* Inserts a word into the hash table.
*/
private static void insertWord()
{
System.out.print("Word to insert: ");
String insertMe = input.nextLine();
filter.insert(insertMe);
System.out.println(insertMe + " added successfully!");
}
private static void checkEmail()
{
// TODO Auto-generated method stub
}
private static void loadFilter()
{
//TODO
}
private static void saveFilter()
{
//TODO
}
}