From 318468a976ec426f517663f7a244c969623df882 Mon Sep 17 00:00:00 2001 From: "Safey A.Halim" Date: Fri, 22 Oct 2010 14:28:51 +0000 Subject: [PATCH 1/1] Handle to deal with Expression Database --- .../seaspider/ExpressionDatabaseHandler.java | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 src/monkey/seaspider/org/gnunet/seaspider/ExpressionDatabaseHandler.java diff --git a/src/monkey/seaspider/org/gnunet/seaspider/ExpressionDatabaseHandler.java b/src/monkey/seaspider/org/gnunet/seaspider/ExpressionDatabaseHandler.java new file mode 100644 index 000000000..36c34d1de --- /dev/null +++ b/src/monkey/seaspider/org/gnunet/seaspider/ExpressionDatabaseHandler.java @@ -0,0 +1,75 @@ +package org.gnunet.seaspider.parser; + +import java.io.File; + +import org.tmatesoft.sqljet.core.SqlJetException; +import org.tmatesoft.sqljet.core.SqlJetTransactionMode; +import org.tmatesoft.sqljet.core.table.ISqlJetTable; +import org.tmatesoft.sqljet.core.table.SqlJetDb; + +public class ExpressionDatabaseHandler { + + private static SqlJetDb db = null; + + public static void createExpressionDatabase(String databasePath) { + String createTableQuery = "CREATE TABLE Expression ( expr_ID INT NOT NULL PRIMARY KEY , " + + "file_name TEXT NOT NULL , expr_syntax TEXT NOT NULL ," + + " start_lineno INT NOT NULL , end_lineno INT NOT NULL , " + + "scope_start_lineno INT NOT NULL , scope_end_lineno INT NOT NULL)"; + + File dbFile = new File(databasePath + "/GNUnetExpressions.db"); + dbFile.delete();/* Delete it if already existent */ + + /* Create Expressions database */ + try { + db = SqlJetDb.open(dbFile, true); + db.getOptions().setAutovacuum(true); + db.beginTransaction(SqlJetTransactionMode.WRITE); + try { + db.getOptions().setUserVersion(1);/* Sets the user's cookie */ + } finally { + db.commit(); + } + /* Create table Expression */ + db.createTable(createTableQuery); + } + catch (SqlJetException e) { + e.printStackTrace(); + } + } + + + public static void closeDatabase() + { + try { + db.close(); + } catch (SqlJetException e) { + e.printStackTrace(); + } + } + + + public static void insertIntoExpressionTable(String fileName, String expressionSyntax, + int startLineNo, int endLineNo, int scopeStartLineNo, + int scopeEndLineNo) + { + if (db == null) { + System.out.println("Error:Database handle is not initialized. Program will exit now!"); + System.exit(1); + } + + ISqlJetTable table; + try { + table = db.getTable("Expression"); + db.beginTransaction(SqlJetTransactionMode.WRITE); + try { + table.insert(fileName, expressionSyntax, startLineNo, endLineNo, scopeStartLineNo, scopeEndLineNo); + } finally { + db.commit(); + } + } + catch (SqlJetException e) { + e.printStackTrace(); + } + } +} -- 2.25.1