ome.services.fulltext.bridges
Class TablesBridge

java.lang.Object
  extended by ome.services.fulltext.BridgeHelper
      extended by ome.services.fulltext.bridges.TablesBridge
All Implemented Interfaces:
org.hibernate.search.bridge.FieldBridge, org.springframework.context.ApplicationEventPublisherAware

public class TablesBridge
extends BridgeHelper

Bridge for parsing OMERO.tables attached to container types. The column names are taken as field names on each image (or similar) found within the table. For example, if a table is attached to a plate and has an omero.grid.ImageColumn "IMAGE" along with one omero.grid.DoubleColumn named "SIZE", then a row with IMAGE == 1 and SIZE == 0.02 will add a field "SIZE" to the Image with id 1 so that a Lucene search "SIZE:0.02" will return that object. This is accomplished by detecting such OMERO.tables on the container and registering each row (above: IMAGE == 1, IMAGE == 2, etc) for later processing. When the element objects are handled, the container is found and the appropriate row processed. This two stage processingis necessary so that later indexing does not overwrite the table values.

Since:
4.3

Field Summary
 String OMERO_TABLE
          Mimetype set on OriginalFile.mimetype (or in previous version, OriginalFile.format.value).
 
Fields inherited from class ome.services.fulltext.BridgeHelper
COMBINED, log, publisher
 
Constructor Summary
TablesBridge()
           
 
Method Summary
protected  void handleAnnotated(ome.model.IAnnotated annotated, Document document, org.hibernate.search.bridge.LuceneOptions opts)
          Responsible for iterating over any attached OMERO.tables and registering all appropriate row objects for later processing.
protected  void handleAnnotation(ome.model.annotations.Annotation annotation, ome.services.fulltext.bridges.TablesBridge.RowProcessor proc)
          Detects if the given annotation contains an OMERO.table and if so, passes it off for further processing.
protected  void handleHdf5(String path, ome.services.fulltext.bridges.TablesBridge.RowProcessor proc)
          Process a single OMERO.tables file.
protected  void handleImage(ome.model.core.Image image, Document document, org.hibernate.search.bridge.LuceneOptions opts)
          Processes any annotations attached to the following types which contain this image: Plate, Dataset
 void set(String name, Object value, Document document, org.hibernate.search.bridge.LuceneOptions opts)
          Primary entry point for all bridges.
 void setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher publisher)
           
 
Methods inherited from class ome.services.fulltext.BridgeHelper
add, addContents, getProxiedObject, logger, parse, reindex, reindexAll
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

OMERO_TABLE

public final String OMERO_TABLE
Mimetype set on OriginalFile.mimetype (or in previous version, OriginalFile.format.value).

See Also:
Constant Field Values
Constructor Detail

TablesBridge

public TablesBridge()
Method Detail

setApplicationEventPublisher

public void setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher publisher)
Specified by:
setApplicationEventPublisher in interface org.springframework.context.ApplicationEventPublisherAware
Overrides:
setApplicationEventPublisher in class BridgeHelper

set

public void set(String name,
                Object value,
                Document document,
                org.hibernate.search.bridge.LuceneOptions opts)
Primary entry point for all bridges.

Specified by:
set in interface org.hibernate.search.bridge.FieldBridge
Specified by:
set in class BridgeHelper

handleImage

protected void handleImage(ome.model.core.Image image,
                           Document document,
                           org.hibernate.search.bridge.LuceneOptions opts)
Processes any annotations attached to the following types which contain this image: Plate, Dataset


handleAnnotated

protected void handleAnnotated(ome.model.IAnnotated annotated,
                               Document document,
                               org.hibernate.search.bridge.LuceneOptions opts)
Responsible for iterating over any attached OMERO.tables and registering all appropriate row objects for later processing. For example, if the table has an omero.grid.ImageColumn with ids 1, 2, 3, and 4, then 4 image objects will be registered for later processing by handleImage(Image, Document, LuceneOptions).


handleAnnotation

protected void handleAnnotation(ome.model.annotations.Annotation annotation,
                                ome.services.fulltext.bridges.TablesBridge.RowProcessor proc)
Detects if the given annotation contains an OMERO.table and if so, passes it off for further processing.


handleHdf5

protected void handleHdf5(String path,
                          ome.services.fulltext.bridges.TablesBridge.RowProcessor proc)
Process a single OMERO.tables file. This method is primarily responsible for iteration and the try/finally logic to guarantee cleanup, etc.



OmeroJava Api

Version: 4.3.3-00d1137e-b2894

Copyright © 2009 The University of Dundee. All Rights Reserved.