Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

com.k_int.hss
Class HeterogeneousSetOfSearchable  view HeterogeneousSetOfSearchable download HeterogeneousSetOfSearchable.java

java.lang.Object
  extended bycom.k_int.hss.HeterogeneousSetOfSearchable
All Implemented Interfaces:
com.k_int.IR.Searchable

public class HeterogeneousSetOfSearchable
extends java.lang.Object
implements com.k_int.IR.Searchable

HeterogeneousSetOfSearchable is a realisation of the com.k_int.IR.searchable interface that deals with collecting together a Heterogeneous group of objects all themselves implementing the Searchable interface. It is the responsiblilty of this class to distribute a query to each of the Searchable objects that might be identified by the hints parameter in the IRQuery object passed to the evaluateQuery method

Version:
$Id: HeterogeneousSetOfSearchable.java,v 1.31 2003/05/09 12:54:48 rob_tice Exp $

Field Summary
private  java.util.Hashtable all_active_searchable_objects
           
private static LoggingContext cat
           
static int dbg_counter
           
static java.lang.String DEFAULT_DIRECTORY_NAMING_LOCATION
           
private  com.k_int.util.Repository.CollectionDirectory directory
           
private  java.util.Properties p
           
private  ThreadPool thread_pool
           
 
Fields inherited from interface com.k_int.IR.Searchable
GROUP_COORDINATOR, SPECIFIC_SOURCE
 
Constructor Summary
HeterogeneousSetOfSearchable()
           
 
Method Summary
 com.k_int.IR.SearchTask createTask(com.k_int.IR.IRQuery q, java.lang.Object user_info)
          Create a HSS task.
 com.k_int.IR.SearchTask createTask(com.k_int.IR.IRQuery q, java.lang.Object user_info, java.util.Observer[] observers)
          Create a HSS task.
 void destroy()
          destroy the searchable object.
protected  void finalize()
          Called on an object by the Virtual Machine at most once, at some point after the Object is determined unreachable but before it is destroyed.
 int getManagerType()
          Returns information about the kind of Searchable object this is.
 ThreadPool getThreadPool()
           
 void init(java.util.Properties p)
          Properties for this realisation of the Searchable interface.
 void reset()
           
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

cat

private static LoggingContext cat

p

private java.util.Properties p

thread_pool

private ThreadPool thread_pool

directory

private com.k_int.util.Repository.CollectionDirectory directory

dbg_counter

public static int dbg_counter

DEFAULT_DIRECTORY_NAMING_LOCATION

public static final java.lang.String DEFAULT_DIRECTORY_NAMING_LOCATION
See Also:
Constant Field Values

all_active_searchable_objects

private java.util.Hashtable all_active_searchable_objects
Constructor Detail

HeterogeneousSetOfSearchable

public HeterogeneousSetOfSearchable()
Method Detail

finalize

protected void finalize()
Description copied from class: java.lang.Object
Called on an object by the Virtual Machine at most once, at some point after the Object is determined unreachable but before it is destroyed. You would think that this means it eventually is called on every Object, but this is not necessarily the case. If execution terminates abnormally, garbage collection does not always happen. Thus you cannot rely on this method to always work. For finer control over garbage collection, use references from the java.lang.ref package.

Virtual Machines are free to not call this method if they can determine that it does nothing important; for example, if your class extends Object and overrides finalize to do simply super.finalize().

finalize() will be called by a java.lang.Thread that has no locks on any Objects, and may be called concurrently. There are no guarantees on the order in which multiple objects are finalized. This means that finalize() is usually unsuited for performing actions that must be thread-safe, and that your implementation must be use defensive programming if it is to always work.

If an Exception is thrown from finalize() during garbage collection, it will be patently ignored and the Object will still be destroyed.

It is allowed, although not typical, for user code to call finalize() directly. User invocation does not affect whether automatic invocation will occur. It is also permitted, although not recommended, for a finalize() method to "revive" an object by making it reachable from normal code again.

Unlike constructors, finalize() does not get called for an object's superclass unless the implementation specifically calls super.finalize().

The default implementation does nothing.


init

public void init(java.util.Properties p)
Properties for this realisation of the Searchable interface. For HeterogeneousSetOfSearchable, this must include the properties for the initial naming context in use. This will be used to find active Searchable objects. We also need the location of the repositories xml configuration file that tells us how to map generic collection id's into repositories and repository specific collections.

Specified by:
init in interface com.k_int.IR.Searchable

reset

public void reset()

destroy

public void destroy()
Description copied from interface: com.k_int.IR.Searchable
destroy the searchable object. Shut down the searchable object entirely. Release all held resources, make the object ready for GC. Try to release in here instead of on finalize.

Specified by:
destroy in interface com.k_int.IR.Searchable

getManagerType

public int getManagerType()
Returns information about the kind of Searchable object this is. in this case, always return Searchable.GROUP_COORDINATOR to indicate that this realisation of searchable does not itself search a resource directly, instead, it's task is to coordinate several other Searchable objects and make them appear to be a single resource.

Specified by:
getManagerType in interface com.k_int.IR.Searchable

createTask

public com.k_int.IR.SearchTask createTask(com.k_int.IR.IRQuery q,
                                          java.lang.Object user_info)
Create a HSS task.

Specified by:
createTask in interface com.k_int.IR.Searchable

createTask

public com.k_int.IR.SearchTask createTask(com.k_int.IR.IRQuery q,
                                          java.lang.Object user_info,
                                          java.util.Observer[] observers)
Create a HSS task. If a task only contains one target, the actual SearchTask object is returned. Otherwise, a HSS task is returned that will aggregate the search results.

Specified by:
createTask in interface com.k_int.IR.Searchable

getThreadPool

public ThreadPool getThreadPool()