for ( int i = 0; i < axisDimensions.length; i++ ) { final CellSetAxis axis = cellSet.getAxes().get( i ); axisDimensions[i] = axis.getPositions().size();
for ( int i = 2; i < cellSet.getAxes().size(); i++ ) { final CellSetAxis cellSetAxis = cellSet.getAxes().get( i ); dimensions[i - 2] = cellSetAxis.getPositions().size();
/** * Computes a description of an axis. * * @param axis * Axis * @return Description of axis */ private AxisInfo computeAxisInfo( final CellSetAxis axis ) { if ( axis == null ) { return new AxisInfo( 0 ); } final AxisInfo axisInfo = new AxisInfo( axis.getAxisMetaData().getHierarchies().size() ); int p = -1; for ( final Position position : axis.getPositions() ) { ++p; int k = -1; for ( final Member member : position.getMembers() ) { ++k; final AxisOrdinalInfo axisOrdinalInfo = axisInfo.ordinalInfos.get( k ); final int topDepth = member.isAll() ? member.getDepth() : member.getHierarchy().hasAll() ? 1 : 0; if ( axisOrdinalInfo.minDepth > topDepth || p == 0 ) { axisOrdinalInfo.minDepth = topDepth; } axisOrdinalInfo.maxDepth = Math.max( axisOrdinalInfo.maxDepth, member.getDepth() ); } } return axisInfo; }
new Matrix( xOffsset + ( columnsAxis == null ? 1 : columnsAxis.getPositions().size() ), yOffset + ( rowsAxis == null ? 1 : rowsAxis.getPositions().size() ) );
final Member[] members = new Member[axisInfo.getWidth()]; for ( int i = 0; i < axis.getPositions().size(); i++ ) { final int x = offset + i; final Position position = axis.getPositions().get( i ); int yOffset = 0; final List<Member> memberList = position.getMembers(); for ( int z = 0; z <= position.getMembers().size() - 1; z++ ) { if ( i < axis.getPositions().size() - 1 ) { if ( axis.getPositions().get( i + 1 ).getMembers().get( z ).getParentMember() != null && axis.getPositions().get( i + 1 ).getMembers().get( z ).getParentMember().equals( member ) ) { if ( member == null || position.getMembers().get( z ).getUniqueName().equals( member.getUniqueName() ) ) {
private void recurse( SaxWriter writer, List<Integer> pos, int axisOrdinal, int[] cellOrdinal) { if (axisOrdinal < 0) { emitCell(writer, pos, cellOrdinal[0]++); } else { CellSetAxis axis = cellSet.getAxes().get(axisOrdinal); List<Position> positions = axis.getPositions(); for (int i = 0, n = positions.size(); i < n; i++) { pos.set(axisOrdinal, i); recurse(writer, pos, axisOrdinal - 1, cellOrdinal); } } }
private Cell getCellInternal(int[] pos) { RolapCell cell; try { cell = (RolapCell) result.getCell(pos); } catch (MondrianException e) { if (e.getMessage().indexOf("coordinates out of range") >= 0) { int[] dimensions = new int[getAxes().size()]; for (int i = 0; i < axisList.size(); i++) { dimensions[i] = axisList.get(i).getPositions().size(); } throw new IndexOutOfBoundsException( "Cell coordinates (" + getCoordsAsString(pos) + ") fall outside CellSet bounds (" + getCoordsAsString(dimensions) + ")"); } else if (e.getMessage().indexOf( "coordinates should have dimension") >= 0) { throw new IllegalArgumentException( "Cell coordinates should have dimension " + axisList.size()); } else { throw e; } } return new MondrianOlap4jCell(pos, this, cell); }
private List<Hierarchy> axisInfo( SaxWriter writer, CellSetAxis axis, String axisName) { writer.startElement( "AxisInfo", "name", axisName); List<Hierarchy> hierarchies; List<Property> props = new ArrayList<>(getProps(axis.getAxisMetaData())); Iterator<org.olap4j.Position> it = axis.getPositions().iterator(); if (it.hasNext()) { final org.olap4j.Position position = it.next(); hierarchies = new ArrayList<Hierarchy>(); for (Member member : position.getMembers()) { hierarchies.add(member.getHierarchy()); } } else { hierarchies = axis.getAxisMetaData().getHierarchies(); } // remove a property without a valid associated hierarchy props.removeIf(prop -> !isValidProp(axis.getPositions(), prop)); writeHierarchyInfo(writer, hierarchies, props); writer.endElement(); // AxisInfo return hierarchies; }
private void axis( SaxWriter writer, CellSetAxis axis, List<Property> props, String axisName) throws OlapException { writer.startElement( "Axis", "name", axisName); writer.startSequence("Tuples", "Tuple"); List<Position> positions = axis.getPositions(); Iterator<Position> pit = positions.iterator(); Position prevPosition = null; Position position = pit.hasNext() ? pit.next() : null; Position nextPosition = pit.hasNext() ? pit.next() : null; while (position != null) { writer.startSequence("Tuple", "Member"); int k = 0; for (Member member : position.getMembers()) { writeMember( writer, member, prevPosition, nextPosition, k++, props); } writer.endSequence(); // Tuple prevPosition = position; position = nextPosition; nextPosition = pit.hasNext() ? pit.next() : null; } writer.endSequence(); // Tuples writer.endElement(); // Axis }
for (int i = axes.size() - 1; i > 0; i--) { CellSetAxis axis = axes.get(i); if (axis.getPositions().size() == 0) { axis.getPositions().get(0).getMembers().size(); final CellSetAxis axis = axes.get(i); final int z0 = memberOrdinal; // save ordinal so can rewind final List<Position> positions = axis.getPositions(); int jj = 0; for (Position position : positions) { for (Position position : columnsAxis.getPositions()) { String name = null; int j = 0;
cellSet.getAxes().get(axis).getPositions(); int axisLength = axis == 0 ? 1 : positions.size();
CellSetAxis slicerAxis = cellSet.getFilterAxis(); final List<Position> slicerPositions = slicerAxis.getPositions(); if (slicerPositions != null && slicerPositions.size() > 0)
/** * @see org.pivot4j.transform.ChangeSlicer#getSlicer() */ public List<Member> getSlicer() { if (!getModel().isInitialized()) { return Collections.emptyList(); } // Use result rather than query CellSet cellSet = getModel().getCellSet(); CellSetAxis slicer = cellSet.getFilterAxis(); List<Position> positions = slicer.getPositions(); List<Member> members = new ArrayList<Member>(); for (Position position : positions) { List<Member> posMembers = position.getMembers(); for (Member posMember : posMembers) { if (!members.contains(posMember)) { members.add(posMember); } } } return members; }
@Override public void execute() throws TranslatorException { try { stmt = this.connection.createStatement(); cellSet = stmt.executeOlapQuery(mdxQuery); CellSetAxis rowAxis = this.cellSet.getAxes().get(Axis.ROWS.axisOrdinal()); rowPositionIterator = rowAxis.iterator(); columnsAxis = cellSet.getAxes().get(Axis.COLUMNS.axisOrdinal()); colWidth = rowAxis.getAxisMetaData().getHierarchies().size() + this.columnsAxis.getPositions().size(); } catch (SQLException e) { throw new TranslatorException(e); } }
/** * @see org.pivot4j.transform.ChangeSlicer#getHierarchies() */ @Override public List<Hierarchy> getHierarchies() { if (!getModel().isInitialized()) { return Collections.emptyList(); } CellSet cellSet = getModel().getCellSet(); if (cellSet == null) { return Collections.emptyList(); } CellSetAxis slicer = cellSet.getFilterAxis(); Set<Hierarchy> hierarchies = new LinkedHashSet<Hierarchy>(); for (Position position : slicer.getPositions()) { for (Member member : position.getMembers()) { if (!member.isAll() && !(member instanceof Measure) && !hierarchies.contains(member.getHierarchy())) { hierarchies.add(member.getHierarchy()); } } } return new LinkedList<Hierarchy>(hierarchies); }
/** * @see org.pivot4j.ui.command.UICommand#execute(org.pivot4j.PivotModel , * org.pivot4j.ui.command.UICommandParameters) */ @Override public Void execute(PivotModel model, UICommandParameters parameters) { CellSet cellSet = model.getCellSet(); CellSetAxis axis = cellSet.getAxes().get(parameters.getAxisOrdinal()); Position position = axis.getPositions().get( parameters.getPositionOrdinal()); Member member = position.getMembers() .get(parameters.getMemberOrdinal()); DrillReplace transform = model.getTransform(DrillReplace.class); transform.drillDown(member); return null; } }
/** * @see org.pivot4j.ui.command.UICommand#execute(org.pivot4j.PivotModel , * org.pivot4j.ui.command.UICommandParameters) */ @Override public Void execute(PivotModel model, UICommandParameters parameters) { CellSet cellSet = model.getCellSet(); CellSetAxis axis = cellSet.getAxes().get(parameters.getAxisOrdinal()); Position position = axis.getPositions().get( parameters.getPositionOrdinal()); Member member = position.getMembers() .get(parameters.getMemberOrdinal()); DrillExpandPosition transform = model .getTransform(DrillExpandPosition.class); transform.collapse(position, member); return null; } }
/** * @see org.pivot4j.ui.command.UICommand#execute(org.pivot4j.PivotModel , * org.pivot4j.ui.command.UICommandParameters) */ @Override public Void execute(PivotModel model, UICommandParameters parameters) { CellSet cellSet = model.getCellSet(); CellSetAxis axis = cellSet.getAxes().get(parameters.getAxisOrdinal()); Position position = axis.getPositions().get( parameters.getPositionOrdinal()); Member member = position.getMembers() .get(parameters.getMemberOrdinal()); DrillExpandMember transform = model .getTransform(DrillExpandMember.class); transform.expand(member); return null; } }
/** * @see org.pivot4j.ui.command.UICommand#execute(org.pivot4j.PivotModel , * org.pivot4j.ui.command.UICommandParameters) */ @Override public Void execute(PivotModel model, UICommandParameters parameters) { CellSet cellSet = model.getCellSet(); CellSetAxis axis = cellSet.getAxes().get(parameters.getAxisOrdinal()); Position position = axis.getPositions().get( parameters.getPositionOrdinal()); Member member = position.getMembers() .get(parameters.getMemberOrdinal()); DrillExpandMember transform = model .getTransform(DrillExpandMember.class); transform.collapse(member); return null; } }
/** * @see org.pivot4j.ui.command.UICommand#execute(org.pivot4j.PivotModel , * org.pivot4j.ui.command.UICommandParameters) */ @Override public Void execute(PivotModel model, UICommandParameters parameters) { CellSet cellSet = model.getCellSet(); CellSetAxis axis = cellSet.getAxes().get(parameters.getAxisOrdinal()); Position position = axis.getPositions().get( parameters.getPositionOrdinal()); Member member = position.getMembers() .get(parameters.getMemberOrdinal()); DrillExpandPosition transform = model .getTransform(DrillExpandPosition.class); transform.expand(position, member); return null; } }