/**
  * @param datasourceType
  * @param datasource
  * @param cube
  * @return
  * @throws AccessDeniedException
  */
 public Collection<String> discoverMeasures(String datasourceType, String datasource, String cube)
     throws AccessDeniedException {
   DatasourceType dsType = null;
   if (datasourceType.equals(DatasourceType.XMLA.toString())) dsType = DatasourceType.XMLA;
   else dsType = DatasourceType.MONDRIAN;
   CubeDataExplorer cubeDataExplorer =
       new CubeDataExplorer(dsType, this.dsService.getDatasource(datasource, dsType), cube, "");
   List measuresList = cubeDataExplorer.getMeasuresList();
   if (measuresList == null) measuresList = new ArrayList();
   return measuresList;
 }
 /**
  * @param dsType
  * @param dsName
  * @return
  * @throws UnsupportedEncodingException
  * @throws OlapException
  * @throws AccessDeniedException
  * @throws ServiceException
  */
 @SuppressWarnings("unchecked")
 public List<String> discoverCubes(String dsType, String dsName)
     throws OlapException, UnsupportedEncodingException, AccessDeniedException {
   List<String> cubes = null;
   if (dsType.equals(DatasourceType.XMLA.toString())) {
     cubes =
         XMLAUtils.getCubesList(
             (XMLADatasource) this.dsService.getDatasource(dsName, DatasourceType.XMLA));
   } else if (dsType.equals(DatasourceType.MONDRIAN.toString())) {
     cubes =
         MondrianHelper.getCubesList(
             (MondrianDatasource) this.dsService.getDatasource(dsName, DatasourceType.MONDRIAN));
   }
   return cubes;
 }