[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