org.compass.core.impl
Class DefaultCompassSession

java.lang.Object
  extended by org.compass.core.impl.DefaultCompassSession
All Implemented Interfaces:
CompassOperations, CompassSession, InternalCompassSession

public class DefaultCompassSession
extends Object
implements InternalCompassSession

Author:
kimchy

Constructor Summary
DefaultCompassSession(RuntimeCompassSettings runtimeSettings, InternalCompass compass, SearchEngine searchEngine, FirstLevelCache firstLevelCache)
           
 
Method Summary
 CompassAnalyzerHelper analyzerHelper()
          Returns an Analyzer helper.
 CompassTransaction beginTransaction()
          Begin a unit of work and return the associated CompassTranscation object.
 CompassTransaction beginTransaction(CompassTransaction.TransactionIsolation transactionIsolation)
          Begin a unit of work and return the associated CompassTranscation object.
 void close()
          Closes the CompassSession.
 void create(Object object)
          Creates a NEW object in Compass.
 void create(String alias, Object object)
          Creates a NEW object in Compass that shares mapping alais with multiple objects.
 Property createProperty(String name, byte[] value, Property.Store store)
          Creates a binary property only stored (can be compressed).
 Property createProperty(String name, Reader value)
          Creates a property (indexed, and not stored) for the specified reader.
 Property createProperty(String name, Reader value, Property.TermVector termVector)
          Creates a property (indexed, and not stored) for the specified reader.
 Property createProperty(String name, String value, Property.Store store, Property.Index index)
          Creates a Property that is used with the actual Search Engine.
 Property createProperty(String name, String value, Property.Store store, Property.Index index, Property.TermVector termVector)
          Creates a Property that is used with the actual Search Engine.
 CompassQueryBuilder createQueryBuilder()
          Creats a new query builder, used to build queries programmatically.
 CompassQueryFilterBuilder createQueryFilterBuilder()
          Creats a new query filter builder, used to build filters of queries programmatically.
 Resource createResource(String alias)
          Creates a resource, that is used with the actual Search Engine implementation.
 void delete(Class clazz, Object obj)
          Deletes an object from Compass that match the mapping specified for the defined class.
 void delete(CompassQuery query)
          Deletes all entries in the index that match the given query.
 void delete(Object obj)
          Deletes an object from Compass.
 void delete(Resource resource)
          Deletes a resource with the specified alias.
 void delete(String alias, Object obj)
          Deletes an object from Compass with multiple alias's.
 void evict(Object obj)
          Evicts the given object from the first level cache (transaction scoped cache).
 void evict(Resource resource)
          Evicts the given resource from the first level cache (transaction scoped cache).
 void evict(String alias, Object id)
          Evicts the given object from the first level cache (transaction scoped cache).
 void evictAll()
          Evicts all the objects and the resources from the first level cache.
 CompassHits find(String query)
          Finds a list of objects that match the specified query.
 void flush()
          Flushed the current transaction.
 Object get(Class clazz, Serializable id)
          Returns an object that match the mapping specified for the defined class, and matches the specified id.
 Object get(String alias, Serializable id)
          Returns an object that match the mapping specified for the defined alias, and matches the specified id.
 Object get(String alias, Serializable id, MarshallingContext context)
           
 Object getByResource(Resource resource)
           
 Object getByResource(Resource resource, MarshallingContext context)
           
 InternalCompass getCompass()
           
 FirstLevelCache getFirstLevelCache()
           
 CompassMapping getMapping()
           
 MarshallingStrategy getMarshallingStrategy()
           
 CompassMetaData getMetaData()
           
 Resource getResource(Class clazz, Serializable id)
          Returns a Resource that match the mapping specified for the defined class type, and specified id.
 Resource getResource(String alias, Serializable id)
          Returns a Resource that match the mapping specified for the defined alias (possibley different object types), and matches the specified id.
 Resource getResourceByIdResource(Resource idResource)
           
 SearchEngine getSearchEngine()
           
 CompassSettings getSettings()
          Runtimes settings that apply on the session level.
 Object load(Class clazz, Serializable id)
          Loads and returns an object that match the mapping specified for the defined class, and matches the specified id.
 Object load(String alias, Serializable id)
          Loads and returns an object that match the mapping specified for the defined class, and matches the specified id.
 Resource loadResource(Class clazz, Serializable id)
          Loads and returns a Resource that match the mapping specified for the defined class, and matches the specified id.
 Resource loadResource(String alias, Serializable id)
          Loads and returns a Resource that match the mapping specified for the defined alias, and matches the specified id.
 Resource loadResourceByIdResource(Resource idResource)
           
 CompassQueryBuilder queryBuilder()
          Creats a new query builder, used to build queries programmatically.
 CompassQueryFilterBuilder queryFilterBuilder()
          Creats a new query filter builder, used to build filters of queries programmatically.
 void save(Object object)
          Saves an object in Compass.
 void save(String alias, Object object)
          Saves an object in Compass that shares mapping alais with multiple objects.
 CompassTermFreqsBuilder termFreqsBuilder(String[] names)
          Creates a new terms frequencies builder used to get terms names and freqs for a list of property names.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultCompassSession

public DefaultCompassSession(RuntimeCompassSettings runtimeSettings,
                             InternalCompass compass,
                             SearchEngine searchEngine,
                             FirstLevelCache firstLevelCache)
Method Detail

getSettings

public CompassSettings getSettings()
Description copied from interface: CompassOperations
Runtimes settings that apply on the session level.

Specified by:
getSettings in interface CompassOperations
Returns:
Runtime settings applies on the session level
See Also:
RuntimeCompassEnvironment, RuntimeLuceneEnvironment

createResource

public Resource createResource(String alias)
                        throws CompassException
Description copied from interface: CompassOperations
Creates a resource, that is used with the actual Search Engine implementation.

Specified by:
createResource in interface CompassOperations
Returns:
a new resource
Throws:
CompassException

createProperty

public Property createProperty(String name,
                               String value,
                               Property.Store store,
                               Property.Index index)
                        throws CompassException
Description copied from interface: CompassOperations
Creates a Property that is used with the actual Search Engine. The available values for the store and index parameters are provided in the Property interface (Property.Store and Property.Index). It stores no term vector information (Property.TermVector.NO).

Specified by:
createProperty in interface CompassOperations
Returns:
a new property
Throws:
CompassException

createProperty

public Property createProperty(String name,
                               String value,
                               Property.Store store,
                               Property.Index index,
                               Property.TermVector termVector)
                        throws CompassException
Description copied from interface: CompassOperations
Creates a Property that is used with the actual Search Engine. The available values for the store and index parameters are provided in the Property interface (Property.Store, Property.Index, Property.TermVector).

Specified by:
createProperty in interface CompassOperations
Parameters:
name - The name of the property
value - The value of the property
store - The store setting for the property
index - The index setting for the property
Returns:
a new property
Throws:
CompassException

createProperty

public Property createProperty(String name,
                               Reader value)
                        throws CompassException
Description copied from interface: CompassOperations
Creates a property (indexed, and not stored) for the specified reader. It stores no term vector information (Property.TermVector.NO).

Specified by:
createProperty in interface CompassOperations
Parameters:
name - The name of the property
value - The value of the property
Returns:
a new property
Throws:
CompassException

createProperty

public Property createProperty(String name,
                               Reader value,
                               Property.TermVector termVector)
                        throws CompassException
Description copied from interface: CompassOperations
Creates a property (indexed, and not stored) for the specified reader.

Specified by:
createProperty in interface CompassOperations
Parameters:
name - The name of the property
value - The value of the property
termVector - The term vector setting for the property
Returns:
a new property
Throws:
CompassException

createProperty

public Property createProperty(String name,
                               byte[] value,
                               Property.Store store)
                        throws CompassException
Description copied from interface: CompassOperations
Creates a binary property only stored (can be compressed).

Specified by:
createProperty in interface CompassOperations
Parameters:
name - The name of the property
value - The value of the property
store - The store setting for the property
Returns:
a new property
Throws:
CompassException

createQueryBuilder

public CompassQueryBuilder createQueryBuilder()
                                       throws CompassException
Description copied from interface: CompassSession
Creats a new query builder, used to build queries programmatically.

Specified by:
createQueryBuilder in interface CompassSession
Returns:
The query builder.
Throws:
CompassException

queryBuilder

public CompassQueryBuilder queryBuilder()
                                 throws CompassException
Description copied from interface: CompassSession
Creats a new query builder, used to build queries programmatically.

Specified by:
queryBuilder in interface CompassSession
Returns:
The query builder.
Throws:
CompassException

createQueryFilterBuilder

public CompassQueryFilterBuilder createQueryFilterBuilder()
                                                   throws CompassException
Description copied from interface: CompassSession
Creats a new query filter builder, used to build filters of queries programmatically.

Specified by:
createQueryFilterBuilder in interface CompassSession
Returns:
The query filter builder.
Throws:
CompassException

queryFilterBuilder

public CompassQueryFilterBuilder queryFilterBuilder()
                                             throws CompassException
Description copied from interface: CompassSession
Creats a new query filter builder, used to build filters of queries programmatically.

Specified by:
queryFilterBuilder in interface CompassSession
Returns:
The query filter builder.
Throws:
CompassException

termFreqsBuilder

public CompassTermFreqsBuilder termFreqsBuilder(String[] names)
                                         throws CompassException
Description copied from interface: CompassSession
Creates a new terms frequencies builder used to get terms names and freqs for a list of property names.

Specified by:
termFreqsBuilder in interface CompassSession
Parameters:
names - The property names
Returns:
A term freqs builder
Throws:
CompassException

analyzerHelper

public CompassAnalyzerHelper analyzerHelper()
                                     throws CompassException
Description copied from interface: CompassSession
Returns an Analyzer helper. Can be used to help analyze given texts.

Specified by:
analyzerHelper in interface CompassSession
Returns:
the analyzer helper
Throws:
CompassException

beginTransaction

public CompassTransaction beginTransaction()
                                    throws CompassException
Description copied from interface: CompassSession
Begin a unit of work and return the associated CompassTranscation object. If a new underlying transaction is required, begin the transaction. Otherwise continue the new work in the context of the existing underlying transaction. The class of the returned CompassTransaction object is determined by the property compass.transaction.factory.

Specified by:
beginTransaction in interface CompassSession
Returns:
a CompassTransaction instance
Throws:
CompassException
See Also:
CompassTransaction

beginTransaction

public CompassTransaction beginTransaction(CompassTransaction.TransactionIsolation transactionIsolation)
                                    throws CompassException
Description copied from interface: CompassSession
Begin a unit of work and return the associated CompassTranscation object. If a new underlying transaction is required, begin the transaction. Otherwise continue the new work in the context of the existing underlying transaction. The class of the returned CompassTransaction object is determined by the property compass.transaction.factory.

Also accepts the transcation isolation of the transaction.

Specified by:
beginTransaction in interface CompassSession
Returns:
a CompassTransaction instance
Throws:
CompassException
See Also:
CompassTransaction

flush

public void flush()
           throws CompassException
Description copied from interface: InternalCompassSession
Flushed the current transaction. Only supported for batch_insert (no op in others).

Specified by:
flush in interface InternalCompassSession
Throws:
CompassException

getResource

public Resource getResource(Class clazz,
                            Serializable id)
                     throws CompassException
Description copied from interface: CompassOperations
Returns a Resource that match the mapping specified for the defined class type, and specified id. The id can be an object of the class (with the id attributes set), an array of id objects, or the actual id object. Returns null if the object is not found.

Specified by:
getResource in interface CompassOperations
Parameters:
clazz - The class that represents the required mapping
id - The id that identifies the resource
Returns:
The resource, returns null if not found
Throws:
CompassException

getResource

public Resource getResource(String alias,
                            Serializable id)
                     throws CompassException
Description copied from interface: CompassOperations
Returns a Resource that match the mapping specified for the defined alias (possibley different object types), and matches the specified id. The id can be an object of the class (with the id attributes set), an array of id objects, or the actual id object. Returns null if the object is not found.

Specified by:
getResource in interface CompassOperations
Parameters:
alias - The alias that represents the required mapping
id - The id that identifies the resource
Returns:
The resource
Throws:
CompassException

getResourceByIdResource

public Resource getResourceByIdResource(Resource idResource)
Specified by:
getResourceByIdResource in interface InternalCompassSession

get

public Object get(Class clazz,
                  Serializable id)
           throws CompassException
Description copied from interface: CompassOperations
Returns an object that match the mapping specified for the defined class, and matches the specified id. The id can be an object of the class (with the id attributes set), an array of id objects, or the actual id object. Returns null if the object is not found.

Specified by:
get in interface CompassOperations
Parameters:
clazz - The class that represents the required mapping
id - The id that identifies the resource
Returns:
The object, returns null if not found
Throws:
CompassException

get

public Object get(String alias,
                  Serializable id)
           throws CompassException
Description copied from interface: CompassOperations
Returns an object that match the mapping specified for the defined alias, and matches the specified id. The id can be an object of the class (with the id attributes set), an array of id objects, or the actual id object. Returns null if the object is not found.

Specified by:
get in interface CompassOperations
Parameters:
alias - The alias that represents the required mapping
id - The id that identifies the resource
Returns:
The object, returns null if not found
Throws:
CompassException

get

public Object get(String alias,
                  Serializable id,
                  MarshallingContext context)
           throws CompassException
Specified by:
get in interface InternalCompassSession
Throws:
CompassException

getByResource

public Object getByResource(Resource resource)
Specified by:
getByResource in interface InternalCompassSession

getByResource

public Object getByResource(Resource resource,
                            MarshallingContext context)

loadResource

public Resource loadResource(Class clazz,
                             Serializable id)
                      throws CompassException
Description copied from interface: CompassOperations
Loads and returns a Resource that match the mapping specified for the defined class, and matches the specified id. The id can be an object of the class (with the id attributes set), an array of id objects, or the actual id object. Throws an exception if the resource is not found.

Specified by:
loadResource in interface CompassOperations
Parameters:
clazz - The class that represents the required mapping
id - The id that identifies the resource
Returns:
The resource
Throws:
CompassException

loadResource

public Resource loadResource(String alias,
                             Serializable id)
                      throws CompassException
Description copied from interface: CompassOperations
Loads and returns a Resource that match the mapping specified for the defined alias, and matches the specified id. The id can be an object of the class (with the id attributes set), an array of id objects, or the actual id object. Throws an exception if the resource is not found.

Specified by:
loadResource in interface CompassOperations
Parameters:
alias - The alias that represents the required mapping
id - The id that identifies the resource
Returns:
The resource
Throws:
CompassException

loadResourceByIdResource

public Resource loadResourceByIdResource(Resource idResource)

load

public Object load(Class clazz,
                   Serializable id)
            throws CompassException
Description copied from interface: CompassOperations
Loads and returns an object that match the mapping specified for the defined class, and matches the specified id. The id can be an object of the class (with the id attributes set), an array of id objects, or the actual id object. Throws an exception if the resource is not found.

Specified by:
load in interface CompassOperations
Parameters:
clazz - The class that represents the required mapping
id - The id that identifies the resource
Returns:
The object
Throws:
CompassException

load

public Object load(String alias,
                   Serializable id)
            throws CompassException
Description copied from interface: CompassOperations
Loads and returns an object that match the mapping specified for the defined class, and matches the specified id. The id can be an object of the class (with the id attributes set), an array of id objects, or the actual id object. Throws an exception if the resource is not found.

Specified by:
load in interface CompassOperations
Parameters:
alias - The alias that represents the required mapping
id - The id that identifies the resource
Returns:
The object
Throws:
CompassException

find

public CompassHits find(String query)
                 throws CompassException
Description copied from interface: CompassOperations
Finds a list of objects that match the specified query. The query syntax is a search engine format query. For detailed description of the query syntax please visit the site.

Several examples are:

Note that the list may contains several object types (classes) with no relation between them (except for the semantic relation).

Specified by:
find in interface CompassOperations
Parameters:
query - The query string to search by
Returns:
A hits of objects that matches the query string
Throws:
CompassException

create

public void create(String alias,
                   Object object)
            throws CompassException
Description copied from interface: CompassOperations
Creates a NEW object in Compass that shares mapping alais with multiple objects. All the meta data defined in Compass mapping files will be indexed and saved for later searching.

Specified by:
create in interface CompassOperations
Parameters:
alias - The alias that match the object mappings
object - The object to save
Throws:
CompassException

create

public void create(Object object)
            throws CompassException
Description copied from interface: CompassOperations
Creates a NEW object in Compass. All the meta data defined in the Compass mapping files will be indexed and saved for later searching. Note that if the same object (same alias and same id's already exists in the index, it won't be deleted).

Specified by:
create in interface CompassOperations
Parameters:
object - The object to save.
Throws:
CompassException

save

public void save(String alias,
                 Object object)
          throws CompassException
Description copied from interface: CompassOperations
Saves an object in Compass that shares mapping alais with multiple objects. All the meta data defined in Compass mapping files will be indexed and saved for later searching.

Specified by:
save in interface CompassOperations
Parameters:
alias - The alias that match the object mappings
object - The object to save
Throws:
CompassException

save

public void save(Object object)
          throws CompassException
Description copied from interface: CompassOperations
Saves an object in Compass. All the meta data defined in the Compass mapping files will be indexed and saved for later searching.

Specified by:
save in interface CompassOperations
Parameters:
object - The object to save.
Throws:
CompassException

delete

public void delete(String alias,
                   Object obj)
            throws CompassException
Description copied from interface: CompassOperations
Deletes an object from Compass with multiple alias's. The object can either be the id (or an array of ids), or the actual data object with it's property ids set.

Specified by:
delete in interface CompassOperations
Parameters:
alias - The alias that the objects maps under
obj - The object to delete
Throws:
CompassException

delete

public void delete(Class clazz,
                   Object obj)
            throws CompassException
Description copied from interface: CompassOperations
Deletes an object from Compass that match the mapping specified for the defined class. The object can either be the id (or an array of ids), or the actual data object with it's property ids set.

Specified by:
delete in interface CompassOperations
Parameters:
clazz - The class that represtents the required mapping
obj - The object to delete
Throws:
CompassException

delete

public void delete(Object obj)
            throws CompassException
Description copied from interface: CompassOperations
Deletes an object from Compass. The object must have been either loaded by Compass or it's ids must be set if already known.

Specified by:
delete in interface CompassOperations
Parameters:
obj - The object to delete
Throws:
CompassException

delete

public void delete(Resource resource)
            throws CompassException
Description copied from interface: CompassOperations
Deletes a resource with the specified alias. Note that the resource must have the defined ids in the mapping files set and an alias set.

Specified by:
delete in interface CompassOperations
Parameters:
resource - The resource to be deleted.
Throws:
CompassException

delete

public void delete(CompassQuery query)
            throws CompassException
Description copied from interface: CompassOperations
Deletes all entries in the index that match the given query.

Specified by:
delete in interface CompassOperations
Parameters:
query - The query to delete by
Throws:
CompassException

evict

public void evict(Object obj)
Description copied from interface: CompassOperations
Evicts the given object from the first level cache (transaction scoped cache).

Specified by:
evict in interface CompassOperations
Parameters:
obj - The objects to evict.

evict

public void evict(String alias,
                  Object id)
Description copied from interface: CompassOperations
Evicts the given object from the first level cache (transaction scoped cache). The object can either be the id (or an array of ids), or the actual data object with it's property ids set.

Specified by:
evict in interface CompassOperations
Parameters:
alias - The alias of the object/entry to evict.
id - The id of the object/entry to evict.

evict

public void evict(Resource resource)
Description copied from interface: CompassOperations
Evicts the given resource from the first level cache (transaction scoped cache).

Specified by:
evict in interface CompassOperations
Parameters:
resource - The resource to evict.

evictAll

public void evictAll()
Description copied from interface: CompassOperations
Evicts all the objects and the resources from the first level cache.

Specified by:
evictAll in interface CompassOperations

close

public void close()
           throws CompassException
Description copied from interface: CompassSession
Closes the CompassSession.

Specified by:
close in interface CompassSession
Throws:
CompassException

getCompass

public InternalCompass getCompass()
Specified by:
getCompass in interface InternalCompassSession

getSearchEngine

public SearchEngine getSearchEngine()
Specified by:
getSearchEngine in interface InternalCompassSession

getMarshallingStrategy

public MarshallingStrategy getMarshallingStrategy()
Specified by:
getMarshallingStrategy in interface InternalCompassSession

getFirstLevelCache

public FirstLevelCache getFirstLevelCache()
Specified by:
getFirstLevelCache in interface InternalCompassSession

getMapping

public CompassMapping getMapping()
Specified by:
getMapping in interface InternalCompassSession

getMetaData

public CompassMetaData getMetaData()
Specified by:
getMetaData in interface InternalCompassSession


Copyright (c) 2004-2006 The Compass Project.