[jbosscache-commits] JBoss Cache SVN: r6210 - searchable/trunk/src/main/java/org/jboss/cache/search.

jbosscache-commits at lists.jboss.org jbosscache-commits at lists.jboss.org
Tue Jul 8 11:20:56 EDT 2008


Author: navssurtani
Date: 2008-07-08 11:20:56 -0400 (Tue, 08 Jul 2008)
New Revision: 6210

Modified:
   searchable/trunk/src/main/java/org/jboss/cache/search/SearchableCacheFactory.java
Log:
made a validation within SearchableCacheFactory.

Modified: searchable/trunk/src/main/java/org/jboss/cache/search/SearchableCacheFactory.java
===================================================================
--- searchable/trunk/src/main/java/org/jboss/cache/search/SearchableCacheFactory.java	2008-07-08 11:39:04 UTC (rev 6209)
+++ searchable/trunk/src/main/java/org/jboss/cache/search/SearchableCacheFactory.java	2008-07-08 15:20:56 UTC (rev 6210)
@@ -2,12 +2,14 @@
 
 import org.hibernate.search.impl.SearchFactoryImpl;
 import org.hibernate.search.cfg.Cfg;
+import org.hibernate.search.annotations.ProvidedId;
 import org.jboss.cache.Cache;
 import org.jboss.cache.CacheStatus;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
 import java.util.Properties;
+import java.lang.reflect.Field;
 
 /**
  * @author Navin Surtani  - navin at surtani.org
@@ -15,6 +17,8 @@
 public class SearchableCacheFactory
 {
    private static final Log log = LogFactory.getLog(SearchableCacheFactory.class);
+
+   
    /**
     * Creates a searchable cache from a cache object and a class array, without the properties object.
     *
@@ -37,6 +41,11 @@
     */
    public SearchableCache createSearchableCache(Cache<?, ?> c, Properties properties, Class... classes)
    {
+      //validate the classes first. make sure the correct annotations are put in.
+
+      validateClasses(classes);
+
+      
       // assume cache is already created and running.
       // otherwise, start the cache!!
       if (c.getCacheStatus() != CacheStatus.STARTED)
@@ -69,4 +78,19 @@
       return sc;
    }
 
+
+   private void validateClasses(Class... classes)
+   {
+      for(Class c: classes)
+      {
+         if (!c.isAnnotationPresent(org.hibernate.search.annotations.ProvidedId.class)) throw new IllegalArgumentException ("There is no provided id on " + c.getName() + " class");
+
+         for(Field field: c.getFields())
+         {
+            if (field.getAnnotation(org.hibernate.search.annotations.DocumentId.class) != null) throw new IllegalArgumentException("Please remove the documentId annotation in " + c.getName());
+         }
+      }
+
+   }
+
 }




More information about the jbosscache-commits mailing list