// $Id: Setup.java,v 1.1 2002/02/02 18:31:30 mdean Exp $


package org.daml.wordsearch;


public class Setup
{
    public static void main(String args[])
	throws Exception
    {
	// connect to database
	Class.forName("org.gjt.mm.mysql.Driver").newInstance();
	java.sql.Connection connection = java.sql.DriverManager.getConnection("jdbc:mysql://localhost/wordsearch");
	java.sql.Statement statement = connection.createStatement();

	// ignore common words
	java.util.HashSet ignoredWords = new java.util.HashSet();
	ignoredWords.add("a");
	ignoredWords.add("an");
	ignoredWords.add("and");
	ignoredWords.add("by");
	ignoredWords.add("in");
	ignoredWords.add("of");
	ignoredWords.add("on");
	ignoredWords.add("or");
	ignoredWords.add("the");

	for (long index = 0; true; index++)
	    {
		String string = org.daml.damldb.DAMLDB.toString(index);

		// EOF
		if (string == null)
		    break;
	
		// skip URIs
		if (string.startsWith("http://"))
		    continue;

		// get rid of punctuation
		StringBuffer temp = new StringBuffer(string.length());
		for (int i = 0; i < string.length(); i++)
		    {
			char ch = string.charAt(i);
			switch (ch)
			    {
			    case '.':
			    case ',':
			    case ':':
			    case ';':
			    case '"':
			    case '\'':
			    case '/':
			    case '?':
			    case '&':
			    case '-':
			    case '%':
			    case '#':
			    case '!':
			    case '(':
			    case ')':
			    case '_':
				// other possibilities:  @
				ch = ' ';
			    default:
				break;
			    }
			temp.append(ch);
		    }
		string = temp.toString();

		java.util.StringTokenizer tokenizer = new java.util.StringTokenizer(string, " ");
		while (tokenizer.hasMoreTokens())
		    {
			String token = tokenizer.nextToken();
			if (ignoredWords.contains(token))
			    continue;

			statement.execute("insert into word(word, id) values('" + token + "', " + index + ")");
		    }
	    }
    }
}
