/**
  * Returns the subcategories of a facet field, given CategoryDrillDownRequestBean
  *
  * @param drillDownRequest The category drilldown object which contains the category drilldown
  *     information
  * @return SubCategoriesBean instance that contains the immediate category information
  * @throws AnalyticsWebServiceException
  */
 public SubCategoriesBean drillDownCategories(CategoryDrillDownRequestBean drillDownRequest)
     throws AnalyticsWebServiceException {
   SubCategoriesBean subCategoriesBean = new SubCategoriesBean();
   try {
     SubCategories subCategories =
         analyticsDataAPI.drillDownCategories(
             getUsername(), getCategoryDrillDownRequest(drillDownRequest));
     subCategoriesBean.setPath(subCategories.getPath());
     if (subCategories.getCategories() != null) {
       subCategoriesBean.setCategories(getSearchResultEntryBeans(subCategories));
     }
   } catch (Exception e) {
     logger.error(
         "Unable to get drill down category information for table["
             + drillDownRequest.getTableName()
             + "] and "
             + "field["
             + drillDownRequest.getFieldName()
             + "] due to "
             + e.getMessage(),
         e);
     throw new AnalyticsWebServiceException(
         "Unable to get drill down category information for "
             + "table["
             + drillDownRequest.getTableName()
             + "] and "
             + "field["
             + drillDownRequest.getFieldName()
             + "] due to "
             + e.getMessage(),
         e);
   }
   return subCategoriesBean;
 }
 private CategoryDrillDownRequest getCategoryDrillDownRequest(
     CategoryDrillDownRequestBean drillDownRequest) {
   CategoryDrillDownRequest categoryDrillDownRequest = new CategoryDrillDownRequest();
   categoryDrillDownRequest.setTableName(drillDownRequest.getTableName());
   categoryDrillDownRequest.setFieldName(drillDownRequest.getFieldName());
   categoryDrillDownRequest.setPath(drillDownRequest.getPath());
   categoryDrillDownRequest.setQuery(drillDownRequest.getQuery());
   categoryDrillDownRequest.setScoreFunction(drillDownRequest.getScoreFunction());
   return categoryDrillDownRequest;
 }