Iterator iterbiobj = biobjs.iterator();
String doclabels = "";
int index = 0;
while(iterbiobj.hasNext()) {
index ++;
BIObject biobj = (BIObject)iterbiobj.next();
List pars = biobj.getBiObjectParameters();
Iterator iterPars = pars.iterator();
StringBuffer fixedParameters = new StringBuffer("");
StringBuffer iterativeParameters = new StringBuffer("");
StringBuffer loadAtRuntimeParameters = new StringBuffer("");
StringBuffer useFormulaParameters = new StringBuffer("");
while(iterPars.hasNext()) {
BIObjectParameter biobjpar = (BIObjectParameter)iterPars.next();
if (biobjpar.isIterative()) {
iterativeParameters.append(biobjpar.getParameterUrlName() + ";");
}
Object strategyObj = biobjpar.getParameterValuesRetriever();
if (strategyObj != null && strategyObj instanceof RuntimeLoadingParameterValuesRetriever) {
RuntimeLoadingParameterValuesRetriever strategy = (RuntimeLoadingParameterValuesRetriever) strategyObj;
String user = strategy.getUserIndentifierToBeUsed();
String role = strategy.getRoleToBeUsed();
loadAtRuntimeParameters.append(biobjpar.getParameterUrlName() + "(" + user + "|" + role + ");");
} else if (strategyObj != null && strategyObj instanceof FormulaParameterValuesRetriever) {
FormulaParameterValuesRetriever strategy = (FormulaParameterValuesRetriever) strategyObj;
String fName = strategy.getFormula().getName();
useFormulaParameters.append(biobjpar.getParameterUrlName() + "(" + fName + ");");
} else {
String concatenatedValue = "";
List values = biobjpar.getParameterValues();
if(values != null && !values.isEmpty()) {
Iterator itervalues = values.iterator();
while(itervalues.hasNext()) {
String value = (String)itervalues.next();
concatenatedValue += value + ";";
}
if(concatenatedValue.length()>0) {
concatenatedValue = concatenatedValue.substring(0, concatenatedValue.length() - 1);
}
}
if(concatenatedValue.length()>0) {
fixedParameters.append(biobjpar.getParameterUrlName() + "=" + concatenatedValue + "%26");
}
}
}
if (fixedParameters.length() > 0) {
fixedParameters = fixedParameters.delete(fixedParameters.length() -1, fixedParameters.length() - 1);
}
message.append("<PARAMETER name=\""+biobj.getLabel()+"__"+index+"\" value=\""+fixedParameters.toString()+"\" />");
if (iterativeParameters.length() > 0) {
iterativeParameters.deleteCharAt(iterativeParameters.length() - 1);
message.append("<PARAMETER name=\""+biobj.getLabel()+"__"+index+"_iterative\" value=\""+iterativeParameters.toString()+"\" />");
}
if (loadAtRuntimeParameters.length() > 0) {
loadAtRuntimeParameters.deleteCharAt(loadAtRuntimeParameters.length() - 1);
message.append("<PARAMETER name=\""+biobj.getLabel()+"__"+index+"_loadAtRuntime\" value=\""+loadAtRuntimeParameters.toString()+"\" />");
}
if (useFormulaParameters.length() > 0) {
useFormulaParameters.deleteCharAt(useFormulaParameters.length() - 1);
message.append("<PARAMETER name=\""+biobj.getLabel()+"__"+index+"_useFormula\" value=\""+useFormulaParameters.toString()+"\" />");
}
doclabels += biobj.getLabel() +"__"+index+ ",";
}
if(doclabels.length()>0) {
doclabels = doclabels.substring(0, doclabels.length()-1);
}
message.append(" <PARAMETER name=\"documentLabels\" value=\""+doclabels+"\" />");