{
try
{
final Map parameters = deriveParseParameters();
parameters.put(new FactoryParameterKey(ReportParserUtil.HELPER_OBJ_REPORT_NAME), null);
final SubReportDataDefinition dataDefinition = (SubReportDataDefinition)
performExternalParsing(parameterFile, SubReportDataDefinition.class, parameters);
report.setDataFactory(dataDefinition.getDataFactory());
report.setQuery(dataDefinition.getQuery());
report.setQueryLimit(dataDefinition.getQueryLimit());
report.setQueryTimeout(dataDefinition.getQueryTimeout());
final ParameterMapping[] inputMapping = dataDefinition.getImportParameters();
for (int i = 0; i < inputMapping.length; i++)
{
final ParameterMapping mapping = inputMapping[i];
report.addInputParameter(mapping.getName(), mapping.getAlias());
}
final ParameterMapping[] exportMapping = dataDefinition.getExportParameters();
for (int i = 0; i < exportMapping.length; i++)
{
final ParameterMapping mapping = exportMapping[i];
report.addExportParameter(mapping.getName(), mapping.getAlias());
}
final Expression[] expressions = dataDefinition.getExpressions();
if (expressions != null)
{
for (int i = 0; i < expressions.length; i++)
{
final Expression expression = expressions[i];