public Matrix format( final CellSet cellSet ) { if ( cellSet.getAxes().size() > 0 ) { columnsAxis = cellSet.getAxes().get( 0 ); } else { columnsAxis = null; if ( cellSet.getAxes().size() > 1 ) { rowsAxis = cellSet.getAxes().get( 1 ); } else { rowsAxis = null; if ( cellSet.getAxes().size() > 2 ) { final int[] dimensions = new int[cellSet.getAxes().size() - 2]; for ( int i = 2; i < cellSet.getAxes().size(); i++ ) { final CellSetAxis cellSetAxis = cellSet.getAxes().get( i ); dimensions[i - 2] = cellSetAxis.getPositions().size();
public void close() throws KettleDatabaseException { try { if ( result != null ) { result.close(); } if ( olapConnection != null ) { olapConnection.close(); } } catch ( Exception e ) { throw new KettleDatabaseException( "Error closing connection" ); } }
private void olapInfo(SaxWriter writer) throws OlapException { Cube cube = cellSet.getMetaData().getCube(); final List<CellSetAxis> axes = cellSet.getAxes(); List<Hierarchy> axisHierarchyList = new ArrayList<Hierarchy>(); for (int i = 0; i < axes.size(); i++) { CellSetAxis slicerAxis = cellSet.getFilterAxis(); if (omitDefaultSlicerInfo) { hierarchies =
/** * Iterates over the resust writing tabular rows. * * @param writer Writer * @throws org.xml.sax.SAXException on error */ private void iterate(SaxWriter writer) throws SAXException, OlapException { switch (axisCount) { case 0: // For MDX like: SELECT FROM Sales emitCell(writer, cellSet.getCell(posList)); return; default: // throw new SAXException("Too many axes: " + axisCount); iterate(writer, axisCount - 1, 0); break; } }
private void axes(SaxWriter writer) throws OlapException { writer.startSequence("Axes", "Axis"); final List<CellSetAxis> axes = cellSet.getAxes(); for (int i = 0; i < axes.size(); i++) { final CellSetAxis axis = axes.get(i); CellSetAxis slicerAxis = cellSet.getFilterAxis(); CellSetAxis slicerAxis = cellSet.getFilterAxis(); final List<Position> slicerPositions = slicerAxis.getPositions();
/** * @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; }
cube = cellSet.getMetaData().getCube(); } else { String cubeName = queryAdapter.getCubeName();
protected MDDataSet_Multidimensional( CellSet cellSet, boolean omitDefaultSlicerInfo, boolean json) throws SQLException { super(cellSet); this.omitDefaultSlicerInfo = omitDefaultSlicerInfo; this.json = json; this.extra = getExtra(cellSet.getStatement().getConnection()); }
int ordinal) Cell cell = cellSet.getCell(pos); if (cell.isNull() && ordinal != 0) {
/** * @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); }
public void close() throws SQLException { cellSet.getStatement().getConnection().close(); }
public Iterator<Cell> iterator() { final int[] axisDimensions = new int[cellSet.getAxes().size() - pageCoords.length]; assert pageCoords.length <= axisDimensions.length; for ( int i = 0; i < axisDimensions.length; i++ ) { final CellSetAxis axis = cellSet.getAxes().get( i ); axisDimensions[i] = axis.getPositions().size();
@Override public List<?> next() throws TranslatorException { if (!rowPositionIterator.hasNext()) { return null; } Position rowPosition = rowPositionIterator.next(); Object[] result = new Object[colWidth]; int i = 0; // add in rows axis List<Member> members = rowPosition.getMembers(); for (Member member:members) { String columnName = member.getName(); result[i++] = columnName; } // add col axis for (Position colPos : columnsAxis) { Cell cell = cellSet.getCell(colPos, rowPosition); result[i++] = cell.getValue(); } if (returnsArray) { ArrayList<Object[]> results = new ArrayList<Object[]>(1); results.add(result); return results; } return Arrays.asList(result); }
/** * @see org.pivot4j.transform.ChangeSlicer#getSlicer(org.olap4j.metadata * .Hierarchy) */ @Override public List<Member> getSlicer(Hierarchy hierarchy) { if (hierarchy == null) { return getSlicer(); } 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 (OlapUtils.equals(posMember.getHierarchy(), hierarchy) && !members.contains(posMember)) { members.add(posMember); } } } return members; }
if (cellSet != null) { try { cellSet.close(); } catch (SQLException e) {
private void cellData(SaxWriter writer) { writer.startSequence("CellData", "Cell"); final int axisCount = cellSet.getAxes().size(); List<Integer> pos = new ArrayList<Integer>(); for (int i = 0; i < axisCount; i++) { pos.add(-1); } int[] cellOrdinal = new int[] {0}; int axisOrdinal = axisCount - 1; recurse(writer, pos, axisOrdinal, cellOrdinal); writer.endSequence(); // CellData }
public void updateCell() { FacesContext context = FacesContext.getCurrentInstance(); Map<String, String> parameters = context.getExternalContext() .getRequestParameterMap(); int ordinal = Integer.parseInt(parameters.get("cell")); String id = "input-" + ordinal; UIInput input = (UIInput) component.findComponent(id); Double value = (Double) input.getValue(); Cell cell = model.getCellSet().getCell(ordinal); try { cell.setValue(value, AllocationPolicy.EQUAL_ALLOCATION); } catch (OlapException e) { throw new FacesException(e); } model.refresh(); }
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); } } }