23
23
import org .olap4j .OlapException ;
24
24
import org .olap4j .Position ;
25
25
import org .olap4j .metadata .Cube ;
26
+ import org .olap4j .metadata .Level ;
26
27
import org .olap4j .metadata .Member ;
27
28
import org .olap4j .metadata .MetadataElement ;
28
29
import org .pivot4j .PivotException ;
@@ -75,12 +76,12 @@ public ResultSet drillThrough(Cell cell, List<MetadataElement> selection,
75
76
76
77
ResultSet result ;
77
78
78
- if (selection != null && !selection .isEmpty () || maximumRows > 0 ) {
79
- result = performDrillThroughMdx (cell , selection , maximumRows );
80
- } else {
81
- result = performDrillThrough (cell );
79
+ if (selection ==null ) {
80
+ selection = Collections .emptyList ();
82
81
}
83
82
83
+ result = performDrillThroughMdx (cell , selection , maximumRows );
84
+
84
85
return result ;
85
86
}
86
87
@@ -158,15 +159,17 @@ protected ResultSet performDrillThroughMdx(Cell cell,
158
159
builder .append (slicer .toMdx ());
159
160
}
160
161
161
- List <Member > members ;
162
+ List <MetadataElement > members ;
162
163
if (selection == null ) {
163
164
members = Collections .emptyList ();
164
165
} else {
165
- members = new LinkedList <Member >();
166
+ members = new LinkedList <MetadataElement >();
166
167
167
168
for (MetadataElement elem : selection ) {
168
- if (elem instanceof Member ) {
169
- members .add ((Member ) elem );
169
+ if (elem instanceof Member ){
170
+ members .add (utils .wrapRaggedIfNecessary ((Member ) elem ));
171
+ } else if (elem instanceof Level ) {
172
+ members .add (elem );
170
173
}
171
174
}
172
175
}
@@ -176,15 +179,13 @@ protected ResultSet performDrillThroughMdx(Cell cell,
176
179
177
180
isFirst = true ;
178
181
179
- for (Member elem : members ) {
182
+ for (MetadataElement elem : members ) {
180
183
if (isFirst ) {
181
184
isFirst = false ;
182
185
} else {
183
186
builder .append (", " );
184
187
}
185
188
186
- elem = utils .wrapRaggedIfNecessary (elem );
187
-
188
189
builder .append (elem .getUniqueName ());
189
190
}
190
191
}
0 commit comments