memberposition);
}
public boolean includeMember(String queryName, String dimensionName, String uniqueMemberName, String selectionType,
String totalsFunction, int memberposition) {
IQuery query = getIQuery(queryName);
List<IdentifierSegment> memberList = IdentifierNode.parseIdentifier(uniqueMemberName).getSegmentList();
QueryDimension dimension = query.getDimension(dimensionName);
final Selection.Operator selectionMode = Selection.Operator.valueOf(selectionType);
try {
removeAllChildren(queryName, dimensionName);
Selection sel = dimension.createSelection(selectionMode, memberList);
if (dimension.getInclusions().contains(sel)) {
dimension.getInclusions().remove(sel);
}
if (memberposition < 0) {
memberposition = dimension.getInclusions().size();
}
dimension.getInclusions().add(memberposition, sel);
query.setTotalFunction(((Member) sel.getRootElement()).getLevel().getUniqueName(), totalsFunction);
return true;
} catch (OlapException e) {
throw new SaikuServiceException(
"Cannot include member query (" + queryName + ") dimension (" + dimensionName + ") member ("
+ uniqueMemberName + ") operator (" + selectionType + ") position " + memberposition, e);