You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by ka...@apache.org on 2009/03/30 01:09:13 UTC

svn commit: r759797 - in /labs/bananadb/trunk/src: main/java/org/apache/labs/bananadb/entity/EntityStore.java test/java/org/apache/labs/bananadb/entity/TestEntityStore.java

Author: kalle
Date: Sun Mar 29 23:09:12 2009
New Revision: 759797

URL: http://svn.apache.org/viewvc?rev=759797&view=rev
Log:
Banana DB  

Better exceptions

Modified:
    labs/bananadb/trunk/src/main/java/org/apache/labs/bananadb/entity/EntityStore.java
    labs/bananadb/trunk/src/test/java/org/apache/labs/bananadb/entity/TestEntityStore.java

Modified: labs/bananadb/trunk/src/main/java/org/apache/labs/bananadb/entity/EntityStore.java
URL: http://svn.apache.org/viewvc/labs/bananadb/trunk/src/main/java/org/apache/labs/bananadb/entity/EntityStore.java?rev=759797&r1=759796&r2=759797&view=diff
==============================================================================
--- labs/bananadb/trunk/src/main/java/org/apache/labs/bananadb/entity/EntityStore.java (original)
+++ labs/bananadb/trunk/src/main/java/org/apache/labs/bananadb/entity/EntityStore.java Sun Mar 29 23:09:12 2009
@@ -36,10 +36,22 @@
 
 
 /**
- * User: kalle
- * Date: 2008-jul-23
- * Time: 02:54:45
- */
+ * May contain up to one index per entity class type.
+ *
+ * <code>
+ * indexA = getPrimaryIndex(Long.class, EntityClass.class);
+ * indexB = getPrimaryIndex(Long.class, EntityClass.class);
+ * assert indexA == indexB;
+ * </code>
+ *
+ * This really should throw some sort of exception:
+ * <code>
+ * indexA = getPrimaryIndex(Long.class, EntityClass.class);
+ * indexB = getPrimaryIndex(String.class, EntityClass.class);
+ * </code>
+
+ *
+ */          
 public class EntityStore extends Store {
 
   private org.apache.labs.bananadb.entity.Configuration configuration;
@@ -130,6 +142,10 @@
       );
 
       primaryIndexByEntityClass.put(entityClass, primaryIndex);
+    } else {
+      if (!primaryIndex.getKeyClass().equals(keyClass)) {
+        throw new IllegalArgumentException("Key type "+keyClass.getName()+" does not match registred type " + primaryIndex.getKeyClass().getName()); 
+      }
     }
 
     return primaryIndex;

Modified: labs/bananadb/trunk/src/test/java/org/apache/labs/bananadb/entity/TestEntityStore.java
URL: http://svn.apache.org/viewvc/labs/bananadb/trunk/src/test/java/org/apache/labs/bananadb/entity/TestEntityStore.java?rev=759797&r1=759796&r2=759797&view=diff
==============================================================================
--- labs/bananadb/trunk/src/test/java/org/apache/labs/bananadb/entity/TestEntityStore.java (original)
+++ labs/bananadb/trunk/src/test/java/org/apache/labs/bananadb/entity/TestEntityStore.java Sun Mar 29 23:09:12 2009
@@ -28,6 +28,25 @@
  */
 public class TestEntityStore extends EntityStoreTest {
 
+
+  @Test
+  public void testPrimaryIndex() throws Exception {
+
+    EntityStore store = entityStoreFactory("entityStore/testPrimaryIndex");
+
+    assertEquals(store.getPrimaryIndex(Long.class, WithSharedSequenceNameA.class), store.getPrimaryIndex(Long.class, WithSharedSequenceNameA.class));
+
+    try {
+      store.getPrimaryIndex(String.class, WithSharedSequenceNameA.class);
+      fail("Should not allow new class type");
+    } catch (IllegalArgumentException e) {
+      // all good
+    }
+
+    store.close();
+
+  }
+
   @Test
   public void testAutoIncrement() throws Exception {
 
@@ -45,7 +64,7 @@
     withSharedSequenceNamesB.put(b = new WithSharedSequenceNameB());
     assertEquals(new Long(2l), b.getPK());
 
-    store.getTxn().abort();    
+    store.getTxn().abort();
 
     store = reopen(store);
 



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org