String result = null;
try {
final ViewEngine engine = ViewEngine.getInstance();
String method = requestParams.getStringParameter( Parameter.METHOD, "" );
final ViewEngine.Operation operation = ViewEngine.Operation.get( method );
if ( ViewEngine.Operation.LIST_ALL_VIEWS == operation ) {
if ( !SecurityHelper.isPentahoAdministrator( PentahoSessionHolder.getSession() ) ) {
out.write( "You need to be an administrator to poll all views".getBytes( CharsetHelper.getEncoding() ) );
return;
}
}
switch( operation ) {
case GET_VIEW:
result =
engine.getView( requestParams.getStringParameter( Parameter.NAME, "" ),
PentahoSessionHolder.getSession().getName() ).toJSON().toString();
break;
case SAVE_VIEW:
result =
engine.saveView( requestParams.getStringParameter( Parameter.VIEW, "" ), PentahoSessionHolder
.getSession().getName() );
break;
case DELETE_VIEW:
result =
engine.deleteView( requestParams.getStringParameter( Parameter.NAME, "" ), PentahoSessionHolder
.getSession().getName() );
break;
case LIST_VIEWS:
result = engine.listViews( PentahoSessionHolder.getSession().getName() ).toString( 2 );
break;
case LIST_ALL_VIEWS:
result = engine.listAllViews( PentahoSessionHolder.getSession().getName() ).toString( 2 );
break;
default:
result = JsonUtil.makeJsonErrorResponse( "Unknown View operation: " + method, true ).toString( 2 );
break;
}