public void close() { if ( result != null ) { try { result.close(); } catch ( Exception ignored ) {
private static void outputFlattenedRecurse( Result result, List<List<Object>> rows, List<Object> rowValues, int[] coords, int axisOrdinal ) { final Axis[] axes = result.getAxes(); if ( axisOrdinal == axes.length ) { final Cell cell = result.getCell( coords ); // Output the raw (unformatted) value of the cell. // NOTE: We could output other properties of the cell here, such as its // formatted value, too. rowValues.add( cell.getValue() ); // Add a copy of the completed row to the list of rows. rows.add( new ArrayList<>( rowValues ) ); } else { final Axis axis = axes[axisOrdinal]; int k = -1; int saveLength = rowValues.size(); for ( Position position : axis.getPositions() ) { coords[axisOrdinal] = ++k; for ( Member member : position ) { rowValues.add( member.getUniqueName() ); } outputFlattenedRecurse( result, rows, rowValues, coords, axisOrdinal + 1 ); while ( rowValues.size() > saveLength ) { rowValues.remove( rowValues.size() - 1 ); } } } }
/** * Converts a {@link Result} object to a string printing to standard * output directly, without buffering. * * @return null String since output is dump directly to stdout. */ public String highCardToString(Result result) { result.print(new PrintWriter(System.out, true)); return null; }
Query q = mdxConnection.parseQuery(queryString); Result result = mdxConnection.execute(q); List<Position> slicers = result.getSlicerAxis().getPositions(); html.append("<table class='resulttable' cellspacing=1 border=0>"); html.append(Util.nl); List<Position> columns = result.getAxes()[0].getPositions(); List<Position> rows = null; if (result.getAxes().length == 2) { rows = result.getAxes()[1].getPositions(); if (result.getAxes().length == 2) { rowWidth = result.getAxes()[1].getPositions().get(0).size(); if (j == 0 && result.getAxes().length > 1) { if (result.getAxes().length > 1) { for (int i = 0; i < rows.size(); i++) { html.append("<tr>"); showCell(html, result.getCell(new int[] {j, i})); html.append("<tr>"); for (int i = 0; i < columns.size(); i++) { showCell(html, result.getCell(new int[] {i}));
mondrian.olap.Axis[] axes = result.getAxes(); QueryAxis[] queryAxes = result.getQuery().getAxes(); assert axes.length == queryAxes.length; for (int i = 0; i < axes.length; i++) { QueryAxis queryAxis = result.getQuery().getSlicerAxis(); final Axis axis = result.getSlicerAxis(); if (queryAxis == null) {
public synchronized Cell getCell(int[] externalPos) { try { System.arraycopy( externalPos, 0, this.pos, 0, externalPos.length); int offset = externalPos[axis]; int mappedOffset = mapOffsetToUnderlying(offset); this.pos[axis] = mappedOffset; return underlying.getCell(this.pos); } catch (NullPointerException npe) { return underlying.getCell(externalPos); } }
private Element build() { dimCount = result.getAxes().length; Element mdxtable = factory.createElement("mdxtable"); Element query = elem("query", mdxtable); cdata(Util.unparse(result.getQuery()), query); Element head = elem("head", mdxtable); Element body = elem("body", mdxtable); switch (dimCount) { case 0: buildRows0Dim(body); break; case 1: buildColumns(head, result.getAxes()[0]); buildRows1Dim(body); break; case 2: buildColumns(head, result.getAxes()[0]); buildRows2Dim(body, result.getAxes()[1]); break; default: throw new IllegalArgumentException( "DomBuilder requires 0, 1 or 2 dimensional result"); } Element slicers = elem("slicers", mdxtable); buildSlicer(slicers); return mdxtable; }
final Axis[] axes = result.getAxes(); rows = new ArrayList<>(); headings = new ArrayList<>();
super(execution, result.getAxes().clone()); int axisCount = underlying.getAxes().length; this.pos = new int[axisCount]; this.slicerAxis = underlying.getSlicerAxis(); TupleList tupleList = ((RolapAxis) underlying.getAxes()[axis]).getTupleList();
private void buildSlicer(Element parent) { List<Position> positions = result.getSlicerAxis().getPositions(); for (int i = 0; i < positions.size(); i++) { Position position = positions.get(i); if (position.size() > 0) { Element el = elem("position", parent); for (int j = 0; j < position.size(); j++) { createMemberElem("member", el, position.get(j)); } } } }
private void buildRows0Dim(Element parent) { int[] cellIndex = new int[0]; Element row = elem("row", parent); Cell cell = result.getCell(cellIndex); buildCell(cell, row, false); }
public JRMondrianResult(Result result) { this.result = result; JRMondrianFactory factory = new JRMondrianFactory(); Query query = result.getQuery(); Axis[] resultAxes = result.getAxes(); axes = new JRMondrianAxis[resultAxes.length]; for (int i = 0; i < resultAxes.length; i++) { AxisOrdinal ordinal = AxisOrdinal.StandardAxisOrdinal.forLogicalOrdinal(i); axes[i] = new JRMondrianAxis(resultAxes[i], query.getMdxHierarchiesOnAxis(ordinal), factory); } }
private String getBoundsAsString() { StringBuilder buf = new StringBuilder(); Axis[] axes = result.getAxes(); for (int i = 0; i < axes.length; i++) { if (i > 0) { buf.append(", "); } buf.append(axes[i].getPositions().size()); } return buf.toString(); }
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); }
public void close() { underlying.close(); } }
/** * Converts a {@link Result} object to a string * * @return String version of mondrian Result object. */ public String toString(Result result) { StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); result.print(pw); pw.flush(); return sw.toString(); } /**
result.getCell(new int[]{0}).getFormattedValue(); mdxResult = resultString; clearError();