Beispiel #1
0
 public List<SaikuCube> getCubes(String connectionName) {
   OlapConnection olapcon = connections.getOlapConnection(connectionName);
   List<SaikuCube> cubes = new ArrayList<SaikuCube>();
   if (olapcon != null) {
     try {
       for (Catalog cat : olapcon.getOlapCatalogs()) {
         for (Schema schem : cat.getSchemas()) {
           for (Cube cub : schem.getCubes()) {
             cubes.add(
                 new SaikuCube(
                     connectionName,
                     cub.getUniqueName(),
                     cub.getName(),
                     cub.getCaption(),
                     cat.getName(),
                     schem.getName(),
                     cub.isVisible()));
           }
         }
       }
     } catch (OlapException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
     }
   }
   Collections.sort(cubes, new SaikuCubeCaptionComparator());
   return cubes;
 }
  /** @see org.pivot4j.analytics.datasource.DataSourceManager#getCubes(java.lang.String) */
  @Override
  public List<CubeInfo> getCubes(String catalogName) {
    if (catalogName == null) {
      throw new NullArgumentException("catalogName");
    }

    SimpleDataSourceInfo definition = getDefinition(catalogName);

    if (definition == null) {
      throw new IllegalArgumentException(
          "Data source with the given name does not exist : " + catalogName);
    }

    OlapDataSource dataSource = createDataSource(definition);

    List<CubeInfo> cubes = new LinkedList<CubeInfo>();

    OlapConnection connection = null;

    try {
      connection = dataSource.getConnection();

      for (Cube cube : connection.getOlapSchema().getCubes()) {
        if (cube.isVisible()) {
          cubes.add(new CubeInfo(cube.getName(), cube.getCaption(), cube.getDescription()));
        }
      }
    } catch (SQLException e) {
      throw new PivotException(e);
    } finally {
      if (connection != null) {
        try {
          connection.close();
        } catch (SQLException e) {
          throw new PivotException(e);
        }
      }
    }

    return cubes;
  }
Beispiel #3
0
  public SaikuConnection getConnection(String connectionName) throws SaikuOlapException {
    OlapConnection olapcon = connections.getOlapConnection(connectionName);
    SaikuConnection connection = null;
    if (olapcon != null) {
      List<SaikuCatalog> catalogs = new ArrayList<SaikuCatalog>();
      try {
        for (Catalog cat : olapcon.getOlapCatalogs()) {
          List<SaikuSchema> schemas = new ArrayList<SaikuSchema>();
          for (Schema schem : cat.getSchemas()) {
            List<SaikuCube> cubes = new ArrayList<SaikuCube>();
            for (Cube cub : schem.getCubes()) {
              cubes.add(
                  new SaikuCube(
                      connectionName,
                      cub.getUniqueName(),
                      cub.getName(),
                      cub.getCaption(),
                      cat.getName(),
                      schem.getName(),
                      cub.isVisible()));
            }
            Collections.sort(cubes, new SaikuCubeCaptionComparator());
            schemas.add(new SaikuSchema(schem.getName(), cubes));
          }
          if (schemas.size() == 0) {
            OlapDatabaseMetaData olapDbMeta = olapcon.getMetaData();
            ResultSet cubesResult = olapDbMeta.getCubes(cat.getName(), null, null);

            try {
              List<SaikuCube> cubes = new ArrayList<SaikuCube>();
              while (cubesResult.next()) {

                cubes.add(
                    new SaikuCube(
                        connectionName,
                        cubesResult.getString("CUBE_NAME"),
                        cubesResult.getString("CUBE_NAME"),
                        cubesResult.getString("CUBE_NAME"),
                        cubesResult.getString("CATALOG_NAME"),
                        cubesResult.getString("SCHEMA_NAME")));
              }
              Collections.sort(cubes, new SaikuCubeCaptionComparator());
              schemas.add(new SaikuSchema("", cubes));
            } catch (SQLException e) {
              throw new OlapException(e.getMessage(), e);
            } finally {
              try {
                cubesResult.close();
              } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
              }
            }
          }
          Collections.sort(schemas);
          catalogs.add(new SaikuCatalog(cat.getName(), schemas));
        }
      } catch (OlapException e) {
        throw new SaikuOlapException(
            "Error getting objects of connection (" + connectionName + ")", e);
      }
      Collections.sort(catalogs);
      connection = new SaikuConnection(connectionName, catalogs);
      return connection;
    }
    throw new SaikuOlapException("Cannot find connection: (" + connectionName + ")");
  }