/** * 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; }
public Cell getCell(Position... positions) { int[] coords = new int[positions.length]; for (int i = 0; i < coords.length; i++) { coords[i] = positions[i].getOrdinal(); } return getCellInternal(coords); }
/** * @see org.pivot4j.ui.command.UICommand#createParameters(org.pivot4j.ui.RenderContext) */ @Override public UICommandParameters createParameters(RenderContext context) { UICommandParameters parameters = new UICommandParameters(); parameters.setAxisOrdinal(context.getAxis().axisOrdinal()); parameters.setPositionOrdinal(context.getPosition().getOrdinal()); parameters.setMemberOrdinal(context.getPosition().getMembers() .indexOf(context.getMember())); return parameters; }
/** * @see org.pivot4j.ui.command.UICommand#createParameters(org.pivot4j.ui.RenderContext) */ @Override public UICommandParameters createParameters(RenderContext context) { UICommandParameters parameters = new UICommandParameters(); parameters.setAxisOrdinal(context.getAxis().axisOrdinal()); parameters.setPositionOrdinal(context.getPosition().getOrdinal()); parameters.setMemberOrdinal(context.getPosition().getMembers() .indexOf(context.getMember())); return parameters; }
final Position position = axis.getPositions().get( i ); int yOffset = 0; final List<Member> memberList = position.getMembers(); final Member member = members[y]; final List<String> memberPath = new ArrayList<String>(); for ( int z = 0; z <= position.getMembers().size() - 1; z++ ) { 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() ) ) { break; memberPath.add( position.getMembers().get( z ).getUniqueName() );
/** * @see org.pivot4j.ui.command.UICommand#createParameters(org.pivot4j.ui.RenderContext) */ @Override public UICommandParameters createParameters(RenderContext context) { UICommandParameters parameters = new UICommandParameters(); parameters.setAxisOrdinal(context.getAxis().axisOrdinal()); parameters.setPositionOrdinal(context.getPosition().getOrdinal()); parameters.setMemberOrdinal(context.getPosition().getMembers() .indexOf(context.getMember())); return parameters; }
if (columnNode != null && columnNode.getPosition() != null && columnNode.getPosition().getOrdinal() != -1 && rowNode.getPosition() != null && rowNode.getPosition().getOrdinal() != -1) { cell = context.getCellSet().getCell(columnNode.getPosition(), rowNode.getPosition());
private boolean isValidProp(List<Position> positions, Property prop) { if(!(prop instanceof IMondrianOlap4jProperty)){ return true; } for (Position pos : positions){ if(pos.getMembers().stream() .anyMatch(member -> Objects.nonNull(getHierarchyProperty(member, prop)))){ return true; } } return false; }
/** * @see org.pivot4j.ui.command.UICommand#createParameters(org.pivot4j.ui.RenderContext) */ @Override public UICommandParameters createParameters(RenderContext context) { UICommandParameters parameters = new UICommandParameters(); parameters.setAxisOrdinal(context.getAxis().axisOrdinal()); parameters.setPositionOrdinal(context.getPosition().getOrdinal()); parameters.setMemberOrdinal(context.getPosition().getMembers() .indexOf(context.getMember())); return parameters; }
private int calculateDisplayInfo( Position prevPosition, Position nextPosition, Member currentMember, int memberOrdinal, int childrenCount) { int displayInfo = 0xffff & childrenCount; if (nextPosition != null) { String currentUName = currentMember.getUniqueName(); Member nextMember = nextPosition.getMembers().get(memberOrdinal); String nextParentUName = parentUniqueName(nextMember); if (currentUName.equals(nextParentUName)) { displayInfo |= 0x10000; } } if (prevPosition != null) { String currentParentUName = parentUniqueName(currentMember); Member prevMember = prevPosition.getMembers().get(memberOrdinal); String prevParentUName = parentUniqueName(prevMember); if (currentParentUName != null && currentParentUName.equals(prevParentUName)) { displayInfo |= 0x20000; } } return displayInfo; }
/** * @see org.pivot4j.ui.command.UICommand#createParameters(org.pivot4j.ui.RenderContext) */ @Override public UICommandParameters createParameters(RenderContext context) { UICommandParameters parameters = new UICommandParameters(); parameters.setAxisOrdinal(context.getAxis().axisOrdinal()); parameters.setPositionOrdinal(context.getPosition().getOrdinal()); parameters.setMemberOrdinal(context.getPosition().getMembers() .indexOf(context.getMember())); return parameters; }
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 }
/** * @see org.pivot4j.ui.command.UICommand#createParameters(org.pivot4j.ui.RenderContext) */ @Override public UICommandParameters createParameters(RenderContext context) { UICommandParameters parameters = new UICommandParameters(); parameters.setAxisOrdinal(context.getAxis().axisOrdinal()); parameters.setPositionOrdinal(context.getPosition().getOrdinal()); parameters.setMemberOrdinal(context.getPosition().getMembers() .indexOf(context.getMember())); return parameters; }
final Position position = positions.get(i); int ho = xxx; final List<Member> members = position.getMembers(); for (int j = 0; j < members.size() && ho < this.members.length; j++, ho++) this.members[ho] = position.getMembers().get(j);
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; }
axis.getPositions().get(0).getMembers().size(); for (Position position : positions) { for (Member member : position.getMembers()) { if (jj == 0 || member.getLevel().getDepth() String name = null; int j = 0; for (Member member : position.getMembers()) { if (j == 0) { name = member.getUniqueName();
for (Member member : pos0.getMembers()) { memberMap.put(member.getHierarchy().getName(), i++); slicerPositions.isEmpty() ? Collections.<Member>emptyList() : slicerPositions.get(0).getMembers(); for (Hierarchy hierarchy : hierarchies) {
/** * @param position * @return */ protected Measure getMeasure(Position position) { if (this.measure != null) { return this.measure; } Measure targetMeasure = null; int size = position.getMembers().size(); for (int i = size - 1; i > -1; i--) { Member member = position.getMembers().get(i); if (member instanceof Measure) { targetMeasure = (Measure) member; break; } } return targetMeasure; }
/** * determine path to member * * @param position * @param member * @return path to Member */ private List<Member> memberPath(Position position, Member member) { List<Member> posMembers = position.getMembers(); int index = posMembers.indexOf(member); if (index < 0) { return Collections.emptyList(); } return posMembers.subList(0, index + 1); } }
/** * Extract members of hier from Result * * @param hierIndex * @return members of hier */ protected List<Member> memListForHier(int hierIndex, List<Position> positions) { List<Member> members = new ArrayList<Member>(); for (Position position : positions) { Member member = position.getMembers().get(hierIndex); if (!members.contains(member)) { members.add(member); } } return members; }