diff options
author | eranda <eranda@13f79535-47bb-0310-9956-ffa450edef68> | 2011-07-09 09:02:32 +0000 |
---|---|---|
committer | eranda <eranda@13f79535-47bb-0310-9956-ffa450edef68> | 2011-07-09 09:02:32 +0000 |
commit | 611747a6fea6b03c16d955af639d101319cf0b7f (patch) | |
tree | 314c6e820ba60d23fe00e9e44fad7cd5bf7c3fa9 /collaboration/GSoC-2011-Eranda/couchdb/src/main/java/org/apache/tuscany/nosqldatastore/couchdb/CouchDBGroup.java | |
parent | 800d0da7d863cc75004b9e034646d457156edf97 (diff) |
1. Remove static variable in SessionFactory
2. Set spaces to 4
3. Exception handling
4. Rename *Test to *TestCase
5. Convert test cases in to JUnit
6. Rename addValue() method in Group.java to addEntry()
7. Updated the addEntry method signature to accept String type only
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1144620 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'collaboration/GSoC-2011-Eranda/couchdb/src/main/java/org/apache/tuscany/nosqldatastore/couchdb/CouchDBGroup.java')
-rw-r--r-- | collaboration/GSoC-2011-Eranda/couchdb/src/main/java/org/apache/tuscany/nosqldatastore/couchdb/CouchDBGroup.java | 47 |
1 files changed, 34 insertions, 13 deletions
diff --git a/collaboration/GSoC-2011-Eranda/couchdb/src/main/java/org/apache/tuscany/nosqldatastore/couchdb/CouchDBGroup.java b/collaboration/GSoC-2011-Eranda/couchdb/src/main/java/org/apache/tuscany/nosqldatastore/couchdb/CouchDBGroup.java index 2590dacc0c..485e87149d 100644 --- a/collaboration/GSoC-2011-Eranda/couchdb/src/main/java/org/apache/tuscany/nosqldatastore/couchdb/CouchDBGroup.java +++ b/collaboration/GSoC-2011-Eranda/couchdb/src/main/java/org/apache/tuscany/nosqldatastore/couchdb/CouchDBGroup.java @@ -20,6 +20,8 @@ package org.apache.tuscany.nosqldatastore.couchdb; import org.apache.tuscany.nosqldatastore.Group; +import org.apache.tuscany.nosqldatastore.exception.DuplicateEntryException; +import org.apache.tuscany.nosqldatastore.exception.EntryNotFoundException; import org.jcouchdb.document.DesignDocument; import org.jcouchdb.document.DocumentHelper; import org.jcouchdb.exception.UpdateConflictException; @@ -42,33 +44,52 @@ public class CouchDBGroup implements Group { try{ database.createOrUpdateDocument(doc); }catch(UpdateConflictException e){ - System.out.println("Connect to the doc "+groupId); + System.out.println("Connect to the doc "+groupId); } } - public void addEntry(String key, Object value) { + public void addEntry(String key, String value) throws DuplicateEntryException { DesignDocument doc = database.getDesignDocument(groupId); Map<String, String> lists = doc.getListFunctions(); - lists.put(key, (String)value); - doc.setListFunctions(lists); - database.updateDocument(doc); + if(!lists.containsKey(key)){ + lists.put(key, value); + doc.setListFunctions(lists); + database.updateDocument(doc); + return; + } + throw new DuplicateEntryException("Entry already exist for key "+key); } - public void updateEntry(String key, Object value) { - addEntry(key, value); + public void updateEntry(String key, String value) throws EntryNotFoundException{ + DesignDocument doc = database.getDesignDocument(groupId); + Map<String, String> lists = doc.getListFunctions(); + if(lists.containsKey(key)){ + lists.put(key, value); + doc.setListFunctions(lists); + database.updateDocument(doc); + return; + } + throw new EntryNotFoundException("Entry does not exist for key "+key); } - public void deleteEntry(String key) { + public void deleteEntry(String key) throws EntryNotFoundException { DesignDocument doc = database.getDesignDocument(groupId); Map<String, String> lists = doc.getListFunctions(); - lists.remove(key); - doc.setListFunctions(lists); - database.updateDocument(doc); + if(lists.containsKey(key)){ + lists.remove(key); + doc.setListFunctions(lists); + database.updateDocument(doc); + return; + } + throw new EntryNotFoundException("Entry does not exist for key "+key); } - public Object getValue(String key) { + public String getEntry(String key) throws EntryNotFoundException { DesignDocument doc = database.getDesignDocument(groupId); Map<String, String> lists = doc.getListFunctions(); - return lists.get(key); + if(lists.containsKey(key)){ + return lists.get(key); + } + throw new EntryNotFoundException("Entry does not exist for key "+key); } } |