use of mondrian.olap.Axis in project pentaho-platform by pentaho.
the class MDXMetaData method createColumnNames.
/**
* Flattens the row headers into column names (where the useful columns have useful names and the unuseful columns
* have unusful names).
*
* @return the row headers in a String array
*/
protected String[] createColumnNames() {
String[] colNames = null;
if (nativeResultSet != null) {
// HACK for BISERVER-2640; need backward compatibility to old format of column
// names, yet with the old format cross joins will have problems (BISERVER-1266).
Axis[] axes = nativeResultSet.getAxes();
// Another IndexOOB Fix
if ((axes.length <= MDXMetaData.AXIS_ROW) || (axes[MDXMetaData.AXIS_ROW] == null)) {
// no rows...
return new String[0];
}
List positions = axes[MDXMetaData.AXIS_ROW].getPositions();
if (useExtendedColumnNames) {
if ((this.rowHeaders.length > 0) && (positions != null) && (positions.size() > 0)) {
colNames = new String[this.rowHeaders[0].length];
// Flatten out the column headers into one column-name
for (int i = 0; i < colNames.length; ++i) {
Member member = (Member) ((List) positions.get(0)).get(i);
colNames[i] = "[" + member.getDimension().getName() + "].[" + member.getHierarchy().getName() + "].[" + member.getLevel().getName() + "]";
}
} else {
colNames = new String[0];
}
} else {
if ((positions != null) && (positions.size() > 0)) {
colNames = new String[getColumnCount()];
// Flatten out the column headers into one column-name
for (int i = 0; i < colNames.length; ++i) {
if (i < ((List) positions.get(0)).size()) {
Member member = (Member) ((List) positions.get(0)).get(i);
Hierarchy hierarchy = member.getHierarchy();
colNames[i] = hierarchy.getCaption();
} else {
colNames[i] = ((Member) ((List) positions.get(0)).get(((List) positions.get(0)).size() - 1)).getHierarchy().getName() + "{" + i + // $NON-NLS-1$ //$NON-NLS-2$
"}";
}
}
} else {
colNames = new String[0];
}
}
}
return colNames;
}
use of mondrian.olap.Axis in project pentaho-platform by pentaho.
the class MDXMetaData method createColumnHeaders.
protected Object[][] createColumnHeaders() {
int rowCount = 0;
int colCount = 0;
Object[][] result = null;
Axis[] axes = nativeResultSet.getAxes();
// Another IndexOOB Fix
if ((axes.length <= MDXMetaData.AXIS_COLUMN) || (axes[MDXMetaData.AXIS_COLUMN] == null)) {
return new Object[0][0];
}
List positions = axes[MDXMetaData.AXIS_COLUMN].getPositions();
if (useExtendedColumnNames) {
if (positions != null && positions.size() > 0) {
rowCount = ((List) positions.get(0)).size();
colCount = positions.size();
}
result = new Object[rowCount][colCount];
for (int c = 0; c < colCount; c++) {
List members = (List) positions.get(c);
Member member = null;
for (int r = 0; r < rowCount; r++) {
member = (Member) members.get(r);
result[r][c] = member.getCaption();
}
}
} else {
if ((positions != null) && (positions.size() > 0)) {
rowCount = ((List) positions.get(0)).size() + 1;
colCount = positions.size();
}
result = new Object[rowCount][colCount];
for (int c = 0; c < colCount; c++) {
List members = (List) positions.get(c);
Member member = null;
for (int r = 0; r < rowCount - 1; r++) {
member = (Member) members.get(r);
result[r][c] = member.getCaption();
}
result[rowCount - 1][c] = member.getHierarchy().getCaption();
}
}
return result;
}
use of mondrian.olap.Axis in project pentaho-platform by pentaho.
the class MDXMetaData method createRowHeaders.
protected Object[][] createRowHeaders() {
int rowCount = 0;
int colCount = 0;
Object[][] result = null;
Axis[] axes = nativeResultSet.getAxes();
// Another IndexOOB Fix
if ((axes.length <= MDXMetaData.AXIS_ROW) || (axes[MDXMetaData.AXIS_ROW] == null)) {
return new Object[0][0];
}
List positions = axes[MDXMetaData.AXIS_ROW].getPositions();
if (useExtendedColumnNames) {
if (positions != null && positions.size() > 0) {
rowCount = positions.size();
colCount = ((List) positions.get(0)).size();
}
result = new Object[rowCount][colCount];
for (int r = 0; r < rowCount; r++) {
List members = (List) positions.get(r);
Member member = null;
for (int c = 0; c < colCount; c++) {
member = (Member) members.get(c);
result[r][c] = member.getCaption();
}
}
} else {
if ((positions != null) && (positions.size() > 0)) {
rowCount = positions.size();
colCount = ((List) positions.get(0)).size() + 1;
}
result = new Object[rowCount][colCount];
for (int r = 0; r < rowCount; r++) {
List members = (List) positions.get(r);
Member member = null;
for (int c = 0; c < colCount - 1; c++) {
member = (Member) members.get(c);
result[r][c] = member.getCaption();
}
result[r][colCount - 1] = member.getHierarchy().getCaption();
}
}
return result;
}
Aggregations