processedParamValue = parameterValue;
}
else if (parameterType instanceof MemberType)
{
final MemberType memberType = (MemberType) parameterType;
final Hierarchy hierarchy = memberType.getHierarchy();
if (parameterValue instanceof String)
{
final Member member = findMember(query, hierarchy, query.getCube(), String.valueOf(parameterValue));
if (member != null)
{
processedParamValue = new MemberExpr(member);
}
else
{
processedParamValue = null;
}
}
else
{
if (!(parameterValue instanceof OlapElement))
{
throw new ReportDataFactoryException(parameterValue + " is incorrect for type " + parameterType);
}
else
{
processedParamValue = parameterValue;
}
}
}
else if (parameterType instanceof SetType)
{
final SetType setType = (SetType) parameterType;
final Hierarchy hierarchy = setType.getHierarchy();
if (parameterValue instanceof String)
{
final String rawString = (String) parameterValue;
final String[] memberStr = rawString.replaceFirst("^ *\\{", "").replaceFirst("} *$", "").split(",");
final List<Member> list = new ArrayList<Member>(memberStr.length);