value = ""; //$NON-NLS-1$
} else if ( value instanceof IPentahoResultSet ) {
formatResultSetAsHTMLRows( (IPentahoResultSet) value, messageBuffer );
} else {
// Temporary fix for BISERVER-3348
ReturnParameter rpm = (ReturnParameter) context.getParameterManager().getReturnParameters().get( outputName );
//CHECKSTYLE IGNORE EmptyBlock FOR NEXT 3 LINES
if ( ( rpm != null ) && ( "response".equalsIgnoreCase( rpm.destinationName ) ) //$NON-NLS-1$
&& ( "header".equalsIgnoreCase( rpm.destinationParameter ) ) ) { //$NON-NLS-1$
// we don't want to output response header parameters to the browser...
} else {
if ( doWrapper ) {
messageBuffer.append( outputName ).append( "=" ); //$NON-NLS-1$
}
messageBuffer.append( value.toString() );
if ( doWrapper ) {
messageBuffer.append( "<br/>" ); //$NON-NLS-1$
}
}
}
}
if ( doMessages ) {
if ( doWrapper ) {
messageBuffer.append( "<p><br size=\"1\">" ); //$NON-NLS-1$
}
List messages = context.getMessages();
Iterator messageIterator = messages.iterator();
while ( messageIterator.hasNext() ) {
messageBuffer.append( (String) messageIterator.next() );
if ( doWrapper ) {
messageBuffer.append( "<br/>" ); //$NON-NLS-1$
}
}
}
if ( doWrapper ) {
messageBuffer.append( "</td></tr></table></body></html>" ); //$NON-NLS-1$
}
} else if ( mimeType.equalsIgnoreCase( MessageFormatter.TEXT_MIME_TYPE ) ) {
messageBuffer.append( Messages.getInstance().getString( "MessageFormatter.USER_START_ACTION" + "\n" ) ) //$NON-NLS-1$ //$NON-NLS-2$
.append( Messages.getInstance().getString( "MessageFormatter.USER_ACTION_SUCCESSFUL" + "\n" ) ); //$NON-NLS-1$ //$NON-NLS-2$
// hmm do we need this to be ordered?
Set outputNames = context.getOutputNames();
Iterator outputNameIterator = outputNames.iterator();
while ( outputNameIterator.hasNext() ) {
String outputName = (String) outputNameIterator.next();
Object value = context.getOutputParameter( outputName ).getValue();
if ( value == null ) {
value = ""; //$NON-NLS-1$
} else if ( value instanceof IPentahoResultSet ) {
IPentahoResultSet resultSet = (IPentahoResultSet) value;
Object[][] columnHeaders = resultSet.getMetaData().getColumnHeaders();
Object[][] rowHeaders = resultSet.getMetaData().getRowHeaders();
boolean hasColumnHeaders = columnHeaders != null;
boolean hasRowHeaders = rowHeaders != null;
if ( hasColumnHeaders ) {
for ( Object[] element : columnHeaders ) {
for ( int column = 0; column < element.length; column++ ) {
if ( hasRowHeaders ) {
for ( int indent = 0; indent < rowHeaders[0].length; indent++ ) {
messageBuffer.append( "\t" ); //$NON-NLS-1$
}
}
messageBuffer.append( element[column] ).append( "\t" ); //$NON-NLS-1$
}
messageBuffer.append( "\n" ); //$NON-NLS-1$
}
}
int headerRow = 0;
Object[] dataRow = resultSet.next();
int currentRow = 0;
while ( ( dataRow != null ) && ( currentRow < MessageFormatter.MAX_RESULT_THRESHOLD ) ) {
if ( hasRowHeaders ) {
for ( int rowHeaderCol = 0; rowHeaderCol < rowHeaders[headerRow].length; rowHeaderCol++ ) {
messageBuffer.append( rowHeaders[headerRow][rowHeaderCol].toString() ).append( "\t" ); //$NON-NLS-1$
}
}
for ( Object element : dataRow ) {
messageBuffer.append( element.toString() ).append( "\t" ); //$NON-NLS-1$
}
dataRow = resultSet.next();
currentRow++;
}
} else {
// Temporary fix for BISERVER-3348
ReturnParameter rpm = (ReturnParameter) context.getParameterManager().getReturnParameters().get( outputName );
//CHECKSTYLE IGNORE EmptyBlock FOR NEXT 3 LINES
if ( ( rpm != null ) && ( "response".equalsIgnoreCase( rpm.destinationName ) ) //$NON-NLS-1$
&& ( "header".equalsIgnoreCase( rpm.destinationParameter ) ) ) { //$NON-NLS-1$
// we don't want to output response header parameters to the browser...
} else {