diff options
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.java | 33 |
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"); + } } } |