summaryrefslogtreecommitdiffstats
path: root/collaboration/GSoC-2011-Eranda/couchdb/src/main/java/org/apache/tuscany/nosqldatastore/couchdb/CouchDBSession.java
diff options
context:
space:
mode:
Diffstat (limited to 'collaboration/GSoC-2011-Eranda/couchdb/src/main/java/org/apache/tuscany/nosqldatastore/couchdb/CouchDBSession.java')
-rw-r--r--collaboration/GSoC-2011-Eranda/couchdb/src/main/java/org/apache/tuscany/nosqldatastore/couchdb/CouchDBSession.java33
1 files changed, 26 insertions, 7 deletions
diff --git a/collaboration/GSoC-2011-Eranda/couchdb/src/main/java/org/apache/tuscany/nosqldatastore/couchdb/CouchDBSession.java b/collaboration/GSoC-2011-Eranda/couchdb/src/main/java/org/apache/tuscany/nosqldatastore/couchdb/CouchDBSession.java
index 3805d03283..add2e258ff 100644
--- a/collaboration/GSoC-2011-Eranda/couchdb/src/main/java/org/apache/tuscany/nosqldatastore/couchdb/CouchDBSession.java
+++ b/collaboration/GSoC-2011-Eranda/couchdb/src/main/java/org/apache/tuscany/nosqldatastore/couchdb/CouchDBSession.java
@@ -21,25 +21,44 @@ package org.apache.tuscany.nosqldatastore.couchdb;
import org.apache.tuscany.nosqldatastore.Database;
import org.apache.tuscany.nosqldatastore.Session;
+import org.apache.tuscany.nosqldatastore.exception.DatabaseNotFoundException;
+import org.apache.tuscany.nosqldatastore.exception.SessionException;
import org.jcouchdb.db.Server;
+import org.jcouchdb.exception.CouchDBException;
public class CouchDBSession implements Session{
- public CouchDBSession(){
+ private String sessionName;
+
+ public CouchDBSession(String name){
+ sessionName = name;
}
- public Database createDatabase(String databaseName) {
- Database database = new CouchDBDatatabase(databaseName);
+ public Database createDatabase(String databaseName) throws SessionException {
+ Database database = null;
+ try{
+ database = new CouchDBDatatabase(databaseName);
+ } catch(CouchDBException e){
+ throw new SessionException("Session error");
+ }
return database;
}
- public Database getDatabase(String databaseName) {
- Database database = new CouchDBDatatabase(databaseName);
+ public Database getDatabase(String databaseName) throws SessionException {
+ Database database = createDatabase(databaseName);
return database;
}
- public void deleteDatabase(String databaseName) {
+ public void deleteDatabase(String databaseName) throws SessionException, DatabaseNotFoundException {
org.jcouchdb.db.Database db = new org.jcouchdb.db.Database("localhost",databaseName);
- db.getServer().deleteDatabase(databaseName);
+ if(db.getServer().listDatabases().contains(databaseName)){
+ try{
+ db.getServer().deleteDatabase(databaseName);
+ } catch(CouchDBException e){
+ throw new SessionException("Session error");
+ }
+ } else {
+ throw new DatabaseNotFoundException("Database "+databaseName+" not found");
+ }
}
}