Author: epbernard
Date: 2009-10-25 13:53:52 -0400 (Sun, 25 Oct 2009)
New Revision: 17831
Modified:
search/trunk/src/main/java/org/hibernate/search/cfg/SearchConfiguration.java
search/trunk/src/main/java/org/hibernate/search/engine/DocumentBuilderIndexedEntity.java
search/trunk/src/main/java/org/hibernate/search/impl/FullTextSessionImpl.java
Log:
Various cleanup and enhancements on core Hibernate Search
Modified: search/trunk/src/main/java/org/hibernate/search/cfg/SearchConfiguration.java
===================================================================
---
search/trunk/src/main/java/org/hibernate/search/cfg/SearchConfiguration.java 2009-10-24
21:37:27 UTC (rev 17830)
+++
search/trunk/src/main/java/org/hibernate/search/cfg/SearchConfiguration.java 2009-10-25
17:53:52 UTC (rev 17831)
@@ -45,7 +45,7 @@
/**
* Returns a {@link java.lang.Class} from a String parameter.
* @param name
- * @return An iterator of Classes.
+ * @return corresponding class instance.
*/
Class<?> getClassMapping(String name);
Modified:
search/trunk/src/main/java/org/hibernate/search/engine/DocumentBuilderIndexedEntity.java
===================================================================
---
search/trunk/src/main/java/org/hibernate/search/engine/DocumentBuilderIndexedEntity.java 2009-10-24
21:37:27 UTC (rev 17830)
+++
search/trunk/src/main/java/org/hibernate/search/engine/DocumentBuilderIndexedEntity.java 2009-10-25
17:53:52 UTC (rev 17831)
@@ -600,6 +600,19 @@
return idKeywordName;
}
+ /**
+ * Return the entity id if possible
+ * An IllegalStateException otherwise
+ *
+ * If the id is provided, we can't extract it from the entity
+ *
+ * @return entity id
+ */
+ public Serializable getId(Object entity) {
+ if( entity == null || idGetter == null) throw new IllegalStateException( "Cannot
guess id form entity");
+ return ( Serializable ) ReflectionHelper.getMemberValue( entity, idGetter );
+ }
+
public static Serializable getDocumentId(SearchFactoryImplementor
searchFactoryImplementor, Class<?> clazz, Document document) {
DocumentBuilderIndexedEntity<?> builderIndexedEntity =
searchFactoryImplementor.getDocumentBuilderIndexedEntity(
clazz
Modified: search/trunk/src/main/java/org/hibernate/search/impl/FullTextSessionImpl.java
===================================================================
---
search/trunk/src/main/java/org/hibernate/search/impl/FullTextSessionImpl.java 2009-10-24
21:37:27 UTC (rev 17830)
+++
search/trunk/src/main/java/org/hibernate/search/impl/FullTextSessionImpl.java 2009-10-25
17:53:52 UTC (rev 17831)
@@ -127,32 +127,33 @@
/**
* {@inheritDoc}
*/
- @SuppressWarnings( "unchecked" )
public <T> void purge(Class<T> entityType, Serializable id) {
if ( entityType == null ) {
return;
}
- SearchFactoryImplementor searchFactoryImplementor = getSearchFactoryImplementor();
- Set<Class<?>> targetedClasses =
searchFactoryImplementor.getIndexedTypesPolymorphic( new Class[] {entityType} );
+ Set<Class<?>> targetedClasses =
getSearchFactoryImplementor().getIndexedTypesPolymorphic( new Class[] {entityType} );
if ( targetedClasses.isEmpty() ) {
String msg = entityType.getName() + " is not an indexed entity or a subclass of
an indexed entity";
throw new IllegalArgumentException( msg );
}
- Work<T> work;
- for ( Class clazz : targetedClasses ) {
+ for ( Class<?> clazz : targetedClasses ) {
if ( id == null ) {
- work = new Work<T>( clazz, null, WorkType.PURGE_ALL );
- searchFactoryImplementor.getWorker().performWork( work, transactionContext );
+ createAndPerformWork( clazz, null, WorkType.PURGE_ALL );
}
else {
- work = new Work<T>( clazz, id, WorkType.PURGE );
- searchFactoryImplementor.getWorker().performWork( work, transactionContext );
+ createAndPerformWork( clazz, id, WorkType.PURGE );
}
}
}
+ private <T> void createAndPerformWork(Class<T> clazz, Serializable id,
WorkType workType) {
+ Work<T> work;
+ work = new Work<T>( clazz, id, workType );
+ getSearchFactoryImplementor().getWorker().performWork( work, transactionContext );
+ }
+
/**
* (Re-)index an entity.
* The entity must be associated with the session and non indexable entities are
ignored.
@@ -197,10 +198,7 @@
}
public SearchFactory getSearchFactory() {
- if ( searchFactory == null ) {
- searchFactory = ContextHelper.getSearchFactory( session );
- }
- return searchFactory;
+ return getSearchFactoryImplementor();
}
private SearchFactoryImplementor getSearchFactoryImplementor() {
Show replies by date