Add Synchronization to each Search Entity

As noted earlier, the Generic Search Server staging database must be updated in a timely manner when modifications are made to Search Service related entities. A single entity may well be being used in more than one Search Service, and each of these Search Services must reflect changes to that entity.

The SearchController class is responsible for insuring that all staging database information is up to date. The SearchController insert, modify and remove methods must be called from the application when the corresponding Search Service entity operation is executed. The insert and modify SearchController operations modify the SearchServiceRow table information with the specified entity details struct data. The remove interface requires a key identifying the entity object being removed and the name of the entity.

/** 
 * Generic insertion of entity updates to the database. 
 * 
 * @param details the object details. 
 * @param entityName the name of the entity 
 * @throws AppException application exception retrieving the 
 *   registrar
 * or during Mapper insert. 
 * @throws InformationalException information exception.
 */ 

public final void insert(final Object details, 
  final String entityName) 
    throws AppException, InformationalException
/** 
 * Generic Modify of entity updates to the database.  
 * 
 * @param details the object details. 
 * @param entityName the name of the entity 
 * @throws AppException application exception retrieving the 
 *   registrar 
 * or during Mapper modify.
 * @throws InformationalException information exception. 
 */ 
public final void modify(final Object details, 
  final String entityName) 
    throws AppException, InformationalException
/**
 * Generic remove of entity from the database.  
 *  
 * @param key the object key. 
 * @param entityName the name of the entity  
 * @throws AppException application exception.  
 * @throws InformationalException information exception.  
 */ 
public final void remove(final Object key, 
  final String entityName) throws AppException, 
    InformationalException