Package org.olap4j

Examples of org.olap4j.CellSetAxis


      List<Argument> arguments = procedure.getArguments();
      String mdxQuery = (String) arguments.get(0).getArgumentValue().getValue();
      stmt = this.connection.createStatement();
     
      cellSet = stmt.executeOlapQuery(mdxQuery);
      CellSetAxis rows = this.cellSet.getAxes().get(Axis.ROWS.axisOrdinal());
      iterator = rows.iterator();
      cols = cellSet.getAxes().get(Axis.COLUMNS.axisOrdinal());
        colWidth = rows.getAxisMetaData().getHierarchies().size() + this.cols.getPositions().size();
    } catch (SQLException e) {
      throw new TranslatorException(e);
    }
  }
View Full Code Here


    public static Position getPositionFromCellSet(
        Axis axis,
        int positionOrdinalInAxis,
        CellSet cellSet)
    {
        CellSetAxis a = getCellSetAxisFromCellSet(axis, cellSet);

        return a.getPositions().get(positionOrdinalInAxis);
    }
View Full Code Here

    final List<Integer>[] membersPerAxis = new List[axes.size()];

    // Axis contains (zero or more) positions, which contains (zero or more) members
    for (int axesIndex = axes.size() - 1; axesIndex >= 0; axesIndex -= 1)
    {
      final CellSetAxis axis = axes.get(axesIndex);
      final List<Position> positions = axis.getPositions();

      axesSize[axesIndex] = positions.size();
      if (positions.isEmpty())
      {
        noMeasures = true;
      }

      final ArrayList<Integer> memberList = new ArrayList<Integer>();
      final ArrayList<Dimension> dimensionsForMembers = new ArrayList<Dimension>();
      for (int positionsIndex = 0; positionsIndex < positions.size(); positionsIndex++)
      {
        final Position position = positions.get(positionsIndex);
        final List<Member> members = position.getMembers();
        for (int positionIndex = 0; positionIndex < members.size(); positionIndex++)
        {
          final LinkedHashSet<String> columnNamesSet = new LinkedHashSet<String>();
          Member m = members.get(positionIndex);
          final Dimension dimension = m.getDimension();
          while (m != null)
          {
            final String name = m.getLevel().getUniqueName();
            if (columnNamesSet.contains(name) == false)
            {
              columnNamesSet.add(name);
            }
            m = m.getParentMember();
          }

          final int hierarchyLevelCount = columnNamesSet.size();

          if (memberList.size() <= positionIndex)
          {
            memberList.add(hierarchyLevelCount);
            dimensionsForMembers.add(dimension);
          }
          else
          {
            final Integer existingLevel = memberList.get(positionIndex);
            if (existingLevel.intValue() < hierarchyLevelCount)
            {
              memberList.set(positionIndex, hierarchyLevelCount);
              dimensionsForMembers.set(positionIndex, dimension);
            }
          }
        }
      }

      int memberCount = 0;
      for (int i = 0; i < memberList.size(); i++)
      {
        memberCount += memberList.get(i);
      }
      axesMembers[axesIndex] = memberCount;
      dimensionsForMembersPerAxis[axesIndex] = dimensionsForMembers;
      membersPerAxis[axesIndex] = memberList;
    }

    if (axesSize.length > 0)
    {
      rowCount = axesSize[0];
      for (int i = 1; i < axesSize.length; i++)
      {
        final int size = axesSize[i];
        rowCount *= size;
      }
    }

    rowCount = Math.max(1, rowCount);
    for (int i = 0; i < axesMembers.length; i++)
    {
      columnCount += axesMembers[i];
    }

    if (noMeasures == false)
    {
      columnCount += 1;
    }

    columnNames = new String[columnCount];
    columnToDimensionMapping = new Dimension[columnCount];
    columnToAxisPosition = new int[columnCount];

    int columnIndex = 0;
    int dimColIndex = 0;

    final FastStack memberStack = new FastStack();
    for (int axesIndex = axes.size() - 1; axesIndex >= 0; axesIndex -= 1)
    {
      final CellSetAxis axis = axes.get(axesIndex);
      final List<Position> positions = axis.getPositions();
      final LinkedHashSet<String> columnNamesSet = new LinkedHashSet<String>();
      for (int positionsIndex = 0; positionsIndex < positions.size(); positionsIndex++)
      {
        final Position position = positions.get(positionsIndex);
        final List<Member> members = position.getMembers();
View Full Code Here

  private Member getContextMember(final Dimension dimension,
                                  final int columnIndex,
                                  final List<Integer> cellKey)
  {
    final int axisIndex = columnToAxisPosition[columnIndex];
    final CellSetAxis axis = resultSet.getAxes().get(axisIndex);
    final Integer posIndex = cellKey.get(axisIndex);
    final List<Position> positionList = axis.getPositions();
    if (positionList.isEmpty())
    {
      return null;
    }
View Full Code Here

  private String calcColumnNameFromRowHeader(final int columnNumber)
  {
    // Flatten out the column headers into one column-name
    final List<CellSetAxis> axes = this.resultSet.getAxes();
    final CellSetAxis axis = axes.get(AXIS_ROW);
    final List<Position> positions = axis.getPositions();
    final Position firstPosition = positions.get(0);
    final List<Member> memberList = firstPosition.getMembers();
    if (columnNumber < memberList.size())
    {
      final Member member = memberList.get(columnNumber);
View Full Code Here

    final List<CellSetAxis> axes = this.resultSet.getAxes();
    if (axes.size() < 1)
    {
      return new GenericObjectTable();
    }
    final CellSetAxis axis = axes.get(AXIS_COLUMN);
    final List<Position> positions = axis.getPositions();
    final int colCount = positions.size();
    final GenericObjectTable result = new GenericObjectTable(20, Math.max(1, colCount));
    for (int c = 0; c < colCount; c++)
    {
      final Position position = positions.get(c);
View Full Code Here

    final List<CellSetAxis> axes = this.resultSet.getAxes();
    if (axes.size() < 2)
    {
      return new GenericObjectTable();
    }
    final CellSetAxis axis = axes.get(AXIS_ROW);
    final List<Position> positions = axis.getPositions();
    final int rowCount = positions.size();
    final GenericObjectTable result = new GenericObjectTable(Math.max(1, rowCount), 5);

    for (int r = 0; r < rowCount; r++)
    {
View Full Code Here

    final List<Integer>[] membersPerAxis = new List[axes.size()];

    // process the column axis first ..
    if (axesSize.length > 0)
    {
      final CellSetAxis axis = axes.get(0);
      final List<Position> positions = axis.getPositions();

      axesSize[0] = positions.size();
      if (positions.isEmpty())
      {
        noMeasures = true;
      }
    }

    // Axis contains (zero or more) positions, which contains (zero or more) members
    for (int axesIndex = axes.size() - 1; axesIndex >= 1; axesIndex -= 1)
    {
      final CellSetAxis axis = axes.get(axesIndex);
      final List<Position> positions = axis.getPositions();

      axesSize[axesIndex] = positions.size();
      if (positions.isEmpty())
      {
        noMeasures = true;
      }

      final ArrayList<Integer> memberList = new ArrayList<Integer>();
      final ArrayList<Dimension> dimensionsForMembers = new ArrayList<Dimension>();
      for (int positionsIndex = 0; positionsIndex < positions.size(); positionsIndex++)
      {
        final Position position = positions.get(positionsIndex);
        final List<Member> members = position.getMembers();
        for (int positionIndex = 0; positionIndex < members.size(); positionIndex++)
        {
          final LinkedHashSet<String> columnNamesSet = new LinkedHashSet<String>();
          Member m = members.get(positionIndex);
          final Dimension dimension = m.getDimension();
          int hierarchyLevelCount = 0;
          while (m != null)
          {
            final String name = m.getLevel().getUniqueName();
            if (columnNamesSet.contains(name) == false)
            {
              columnNamesSet.add(name);
            }
            m = m.getParentMember();
          }
          hierarchyLevelCount = columnNamesSet.size();

          if (memberList.size() <= positionIndex)
          {
            memberList.add(hierarchyLevelCount);
            dimensionsForMembers.add(dimension);
          }
          else
          {
            final Integer existingLevel = memberList.get(positionIndex);
            if (existingLevel.intValue() < hierarchyLevelCount)
            {
              memberList.set(positionIndex, hierarchyLevelCount);
              dimensionsForMembers.set(positionIndex, dimension);
            }
          }
        }
      }

      int memberCount = 0;
      for (int i = 0; i < memberList.size(); i++)
      {
        memberCount += memberList.get(i);
      }
      axesMembers[axesIndex] = memberCount;
      dimensionsForMembersPerAxis[axesIndex] = dimensionsForMembers;
      membersPerAxis[axesIndex] = memberList;
    }

    if (axesSize.length > 1)
    {
      rowCount = axesSize[1];
      for (int i = 2; i < axesSize.length; i++)
      {
        final int size = axesSize[i];
        rowCount *= size;
      }
    }
    if (noMeasures == false)
    {
      rowCount = Math.max(1, rowCount);
    }
    if (axesSize.length == 0)
    {
      columnCount = 1;
    }
    else if (axesSize.length > 0)
    {
      columnCount = axesSize[0];
    }
    for (int i = 1; i < axesMembers.length; i++)
    {
      columnCount += axesMembers[i];
    }

    columnNames = new String[columnCount];
    columnToDimensionMapping = new Dimension[columnCount];
    columnToAxisPosition = new int[columnCount];

    int columnIndex = 0;
    int dimColIndex = 0;

    final FastStack memberStack = new FastStack();
    for (int axesIndex = axes.size() - 1; axesIndex >= 1; axesIndex -= 1)
    {
      final CellSetAxis axis = axes.get(axesIndex);
      final List<Position> positions = axis.getPositions();
      final LinkedHashSet<String> columnNamesSet = new LinkedHashSet<String>();
      for (int positionsIndex = 0; positionsIndex < positions.size(); positionsIndex++)
      {
        final Position position = positions.get(positionsIndex);
        final List<Member> members = position.getMembers();
        for (int positionIndex = 0; positionIndex < members.size(); positionIndex++)
        {
          memberStack.clear();
          Member m = members.get(positionIndex);
          while (m != null)
          {
            memberStack.push(m);
            m = m.getParentMember();
          }

          while (memberStack.isEmpty() == false)
          {
            m = (Member) memberStack.pop();
            final String name = m.getLevel().getUniqueName();
            if (columnNamesSet.contains(name) == false)
            {
              columnNamesSet.add(name);
            }
          }
        }
      }

      if (columnNamesSet.size() != axesMembers[axesIndex])
      {
        logger.error("ERROR: Number of names is not equal the pre-counted number.");
      }

      final List<Dimension> dimForMemberPerAxis = dimensionsForMembersPerAxis[axesIndex];
      final List<Integer> memberCntPerAxis = membersPerAxis[axesIndex];
      for (int i = 0; i < memberCntPerAxis.size(); i++)
      {
        final Integer count = memberCntPerAxis.get(i);
        final Dimension dim = dimForMemberPerAxis.get(i);
        for (int x = 0; x < count.intValue(); x += 1)
        {
          this.columnToDimensionMapping[dimColIndex + x] = dim;
          this.columnToAxisPosition[dimColIndex + x] = axesIndex;
        }
        dimColIndex = count.intValue() + dimColIndex;
      }

      final String[] names = columnNamesSet.toArray(new String[columnNamesSet.size()]);
      System.arraycopy(names, 0, this.columnNames, columnIndex, names.length);
      columnIndex += names.length;
    }

    if (axesSize.length > 0)
    {
      // now create the column names for the column-axis
      final CellSetAxis axis = axes.get(0);
      final List<Position> positions = axis.getPositions();
      for (int i = 0; i < positions.size(); i++)
      {
        final Position position = positions.get(i);
        final StringBuffer positionName = new StringBuffer(100);
        final List<Member> memberList = position.getMembers();
View Full Code Here

  private Member getContextMember(final Dimension dimension,
                                  final int columnIndex,
                                  final List<Integer> cellKey)
  {
    final int axisIndex = columnToAxisPosition[columnIndex];
    final CellSetAxis axis = resultSet.getAxes().get(axisIndex);
    final Integer posIndex = cellKey.get(axisIndex);
    final List<Position> positionList = axis.getPositions();
    if (positionList.isEmpty())
    {
      return null;
    }
View Full Code Here

                                     final List<Integer> cellKey)
  {

    final int axisIndex = columnToAxisPosition.get(columnIndex);
    final List<CellSetAxis> axes = resultSet.getAxes();
    final CellSetAxis axis = axes.get(axisIndex);

    final List<Position> positionList = axis.getPositions();
    if (positionList.isEmpty())
    {
      return null;
    }
View Full Code Here

TOP

Related Classes of org.olap4j.CellSetAxis

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.