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; }
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); } }